)]}'
{"test/unit/common/test_utils.py":[{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"6005c72b6aae0fa1fda5d90aeb44ff01f2312183","unresolved":false,"context_lines":[{"line_number":1616,"context_line":"            _prefix \u003d utils.HASH_PATH_PREFIX"},{"line_number":1617,"context_line":"            _suffix \u003d utils.HASH_PATH_SUFFIX"},{"line_number":1618,"context_line":"            utils.HASH_PATH_PREFIX \u003d \u0027\u0027"},{"line_number":1619,"context_line":"            utils.HASH_PATH_SUFFIX \u003d \u0027\u0027"},{"line_number":1620,"context_line":""},{"line_number":1621,"context_line":"            class FakeConfigParser(object):"},{"line_number":1622,"context_line":"                def read(self, conf_path):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a2ca52d_c2fa3343","line":1619,"updated":"2015-10-15 19:04:01.000000000","message":"this sort of thing is better written with mock.patch.object, like so:\n\n    with mock.patch.object(utils, HASH_PATH_PREFIX, \u0027\u0027), mock.patch.object(utils, HASH_PATH_SUFFIX, \u0027\u0027):\n        ...tests\n\nI notice that you\u0027re using mock.patch in this test method already, so just sprinkle in a little more :)","commit_id":"c0e3b1d49039c3215d1352a92871fcab4eec4334"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"2581ed2212ac739ac5277257e3d4db8ddcbb6871","unresolved":false,"context_lines":[{"line_number":1616,"context_line":"            _prefix \u003d utils.HASH_PATH_PREFIX"},{"line_number":1617,"context_line":"            _suffix \u003d utils.HASH_PATH_SUFFIX"},{"line_number":1618,"context_line":"            utils.HASH_PATH_PREFIX \u003d \u0027\u0027"},{"line_number":1619,"context_line":"            utils.HASH_PATH_SUFFIX \u003d \u0027\u0027"},{"line_number":1620,"context_line":""},{"line_number":1621,"context_line":"            class FakeConfigParser(object):"},{"line_number":1622,"context_line":"                def read(self, conf_path):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a2ca52d_7f396cf1","line":1619,"in_reply_to":"5a2ca52d_c2fa3343","updated":"2015-10-16 01:24:13.000000000","message":"Oh yeah, definitely. Nice suggestion. Will fix soon.","commit_id":"c0e3b1d49039c3215d1352a92871fcab4eec4334"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"0dea0543fb85ead53cfa2b9fb8174d8a7a5d33b8","unresolved":false,"context_lines":[{"line_number":1573,"context_line":"    def test_hash_path(self):"},{"line_number":1574,"context_line":"        # Yes, these tests are deliberately very fragile. We want to make sure"},{"line_number":1575,"context_line":"        # that if someones changes the results hash_path produces, they know it"},{"line_number":1576,"context_line":"        with mock.patch(\u0027swift.common.utils.HASH_PATH_PREFIX\u0027, \u0027\u0027):"},{"line_number":1577,"context_line":"            self.assertEqual(utils.hash_path(\u0027a\u0027),"},{"line_number":1578,"context_line":"                             \u00271c84525acb02107ea475dcd3d09c2c58\u0027)"},{"line_number":1579,"context_line":"            self.assertEqual(utils.hash_path(\u0027a\u0027, \u0027c\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a29b11f_e92f9da5","line":1576,"updated":"2015-10-23 16:45:36.000000000","message":"+1 but take a look at the setUp method - and no tearDown :(","commit_id":"d853322eb3836add558a9767bee02ae1448bdf98"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"0dea0543fb85ead53cfa2b9fb8174d8a7a5d33b8","unresolved":false,"context_lines":[{"line_number":1590,"context_line":"            self.assertEqual(utils.hash_path(\u0027a\u0027, \u0027c\u0027, \u0027o\u0027, raw_digest\u003dFalse),"},{"line_number":1591,"context_line":"                             \u0027363f9b535bfb7d17a43a46a358afca0e\u0027)"},{"line_number":1592,"context_line":""},{"line_number":1593,"context_line":"    def test_validate_hash_path(self):"},{"line_number":1594,"context_line":"        # no section causes InvalidHashPathConfigError"},{"line_number":1595,"context_line":"        self._test_validate_hash_path(False, [], True)"},{"line_number":1596,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a29b11f_492b3195","line":1593,"updated":"2015-10-23 16:45:36.000000000","message":"did you mean to name this \u0027test_validate_hash_conf\u0027 ?","commit_id":"d853322eb3836add558a9767bee02ae1448bdf98"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"3ee6f0ea8011023c8af975cc914a06cb83d31351","unresolved":false,"context_lines":[{"line_number":1590,"context_line":"            self.assertEqual(utils.hash_path(\u0027a\u0027, \u0027c\u0027, \u0027o\u0027, raw_digest\u003dFalse),"},{"line_number":1591,"context_line":"                             \u0027363f9b535bfb7d17a43a46a358afca0e\u0027)"},{"line_number":1592,"context_line":""},{"line_number":1593,"context_line":"    def test_validate_hash_path(self):"},{"line_number":1594,"context_line":"        # no section causes InvalidHashPathConfigError"},{"line_number":1595,"context_line":"        self._test_validate_hash_path(False, [], True)"},{"line_number":1596,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a29b11f_4f2a4780","line":1593,"in_reply_to":"3a29b11f_492b3195","updated":"2015-10-24 05:47:34.000000000","message":"oh, yeah, that was I would like to mean. Will fix the name and also _test_validate_hash_path name.","commit_id":"d853322eb3836add558a9767bee02ae1448bdf98"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"0dea0543fb85ead53cfa2b9fb8174d8a7a5d33b8","unresolved":false,"context_lines":[{"line_number":1613,"context_line":"            def read(self, conf_path):"},{"line_number":1614,"context_line":"                return True"},{"line_number":1615,"context_line":""},{"line_number":1616,"context_line":"            def get(self, section, option):"},{"line_number":1617,"context_line":"                if not has_section:"},{"line_number":1618,"context_line":"                    raise NoSectionError(\u0027section error\u0027)"},{"line_number":1619,"context_line":"                elif option not in options:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a29b11f_7bdcb074","line":1616,"updated":"2015-10-23 16:45:36.000000000","message":"nit: perhaps check that section \u003d\u003d \u0027swift_hash\u0027","commit_id":"d853322eb3836add558a9767bee02ae1448bdf98"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"3ee6f0ea8011023c8af975cc914a06cb83d31351","unresolved":false,"context_lines":[{"line_number":1613,"context_line":"            def read(self, conf_path):"},{"line_number":1614,"context_line":"                return True"},{"line_number":1615,"context_line":""},{"line_number":1616,"context_line":"            def get(self, section, option):"},{"line_number":1617,"context_line":"                if not has_section:"},{"line_number":1618,"context_line":"                    raise NoSectionError(\u0027section error\u0027)"},{"line_number":1619,"context_line":"                elif option not in options:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a29b11f_8f305fea","line":1616,"in_reply_to":"3a29b11f_7bdcb074","updated":"2015-10-24 05:47:34.000000000","message":"yes, that is.\n\nWill fix","commit_id":"d853322eb3836add558a9767bee02ae1448bdf98"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"0dea0543fb85ead53cfa2b9fb8174d8a7a5d33b8","unresolved":false,"context_lines":[{"line_number":1629,"context_line":"                utils.validate_hash_conf()"},{"line_number":1630,"context_line":"            except utils.InvalidHashPathConfigError:"},{"line_number":1631,"context_line":"                if not raise_error:"},{"line_number":1632,"context_line":"                    self.fail(\u0027validate_hash_conf must raise an error\u0027)"},{"line_number":1633,"context_line":"            else:"},{"line_number":1634,"context_line":"                if raise_error:"},{"line_number":1635,"context_line":"                    self.fail(\u0027validate_hash_conf must not raise an error\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a29b11f_7b403036","line":1632,"updated":"2015-10-23 16:45:36.000000000","message":"s/must/must not/\n\nin fact, maybe s/must/should not/","commit_id":"d853322eb3836add558a9767bee02ae1448bdf98"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"0dea0543fb85ead53cfa2b9fb8174d8a7a5d33b8","unresolved":false,"context_lines":[{"line_number":1632,"context_line":"                    self.fail(\u0027validate_hash_conf must raise an error\u0027)"},{"line_number":1633,"context_line":"            else:"},{"line_number":1634,"context_line":"                if raise_error:"},{"line_number":1635,"context_line":"                    self.fail(\u0027validate_hash_conf must not raise an error\u0027)"},{"line_number":1636,"context_line":""},{"line_number":1637,"context_line":"    def test_load_libc_function(self):"},{"line_number":1638,"context_line":"        self.assertTrue(callable("}],"source_content_type":"text/x-python","patch_set":4,"id":"3a29b11f_1b781c8f","line":1635,"updated":"2015-10-23 16:45:36.000000000","message":"s/must not/should/","commit_id":"d853322eb3836add558a9767bee02ae1448bdf98"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"3ee6f0ea8011023c8af975cc914a06cb83d31351","unresolved":false,"context_lines":[{"line_number":1632,"context_line":"                    self.fail(\u0027validate_hash_conf must raise an error\u0027)"},{"line_number":1633,"context_line":"            else:"},{"line_number":1634,"context_line":"                if raise_error:"},{"line_number":1635,"context_line":"                    self.fail(\u0027validate_hash_conf must not raise an error\u0027)"},{"line_number":1636,"context_line":""},{"line_number":1637,"context_line":"    def test_load_libc_function(self):"},{"line_number":1638,"context_line":"        self.assertTrue(callable("}],"source_content_type":"text/x-python","patch_set":4,"id":"3a29b11f_cf3657e7","line":1635,"in_reply_to":"3a29b11f_1b781c8f","updated":"2015-10-24 05:47:34.000000000","message":"Nice catch! (previous one is too!)\n\nHmm, I should re-consider the variable name, too.\nWill fix.\n\nThx!","commit_id":"d853322eb3836add558a9767bee02ae1448bdf98"}]}
