)]}'
{"test/unit/common/test_utils.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"7906c7486918e65dce823fbc88fedd5a47db2f46","unresolved":false,"context_lines":[{"line_number":76,"context_line":"threading \u003d eventlet.patcher.original(\u0027threading\u0027)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"class MockOs(object):"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def __init__(self, pass_funcs\u003dNone, called_funcs\u003dNone, raise_funcs\u003dNone):"},{"line_number":82,"context_line":"        if pass_funcs is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_33911d54","line":79,"updated":"2017-10-18 22:17:35.000000000","message":"yeah, I mean this thing is so old... probably most of the tests would be clearer/better if replaced more modern mock.patch patterns...","commit_id":"1aecd1dfc61988f12d4cdfda7110dd648133e4cf"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"6660c6e3376c25d111f04847585bad1898c6d6c9","unresolved":false,"context_lines":[{"line_number":76,"context_line":"threading \u003d eventlet.patcher.original(\u0027threading\u0027)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"class MockOs(object):"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def __init__(self, pass_funcs\u003dNone, called_funcs\u003dNone, raise_funcs\u003dNone):"},{"line_number":82,"context_line":"        if pass_funcs is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_97a2f299","line":79,"in_reply_to":"3f4b6375_33911d54","updated":"2017-10-19 08:25:05.000000000","message":"+1 I realised this could all probably be handled by mock...but made trade-off between investment and gain","commit_id":"1aecd1dfc61988f12d4cdfda7110dd648133e4cf"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"7906c7486918e65dce823fbc88fedd5a47db2f46","unresolved":false,"context_lines":[{"line_number":2150,"context_line":"        self.assertEqual(user_data[3], mock_os.called_funcs[\u0027setgid\u0027][0])"},{"line_number":2151,"context_line":"        self.assertEqual(user_data[2], mock_os.called_funcs[\u0027setuid\u0027][0])"},{"line_number":2152,"context_line":"        self.assertEqual(\u0027/\u0027, mock_os.called_funcs[\u0027chdir\u0027][0])"},{"line_number":2153,"context_line":"        self.assertEqual(0o22, mock_os.called_funcs[\u0027umask\u0027][0])"},{"line_number":2154,"context_line":""},{"line_number":2155,"context_line":"    def test_drop_privileges(self):"},{"line_number":2156,"context_line":"        required_func_calls \u003d (\u0027setgroups\u0027, \u0027setgid\u0027, \u0027setuid\u0027, \u0027setsid\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_b393cd4f","line":2153,"updated":"2017-10-18 22:17:35.000000000","message":"yup, tons stronger test now - KUDOS","commit_id":"1aecd1dfc61988f12d4cdfda7110dd648133e4cf"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"7906c7486918e65dce823fbc88fedd5a47db2f46","unresolved":false,"context_lines":[{"line_number":2158,"context_line":"        mock_os \u003d MockOs(called_funcs\u003drequired_func_calls)"},{"line_number":2159,"context_line":"        self._check_drop_privileges(mock_os, required_func_calls)"},{"line_number":2160,"context_line":""},{"line_number":2161,"context_line":"    def test_drop_privileges_setsid_error(self):"},{"line_number":2162,"context_line":"        # OSError trying to get session leader"},{"line_number":2163,"context_line":"        required_func_calls \u003d (\u0027setgroups\u0027, \u0027setgid\u0027, \u0027setuid\u0027, \u0027setsid\u0027,"},{"line_number":2164,"context_line":"                               \u0027chdir\u0027, \u0027umask\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_537db91a","line":2161,"updated":"2017-10-18 22:17:35.000000000","message":"good call splitting this out","commit_id":"1aecd1dfc61988f12d4cdfda7110dd648133e4cf"}]}
