)]}'
{"neutron/tests/functional/__init__.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"b37d4268538ffcc8698944f4cc476bf9685078a9","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    loader \u003d unittest.loader.TestLoader()"},{"line_number":33,"context_line":"    suite.addTests(_discover(loader, \"./neutron/tests/functional\", pattern))"},{"line_number":34,"context_line":"    suite.addTests(_discover(loader, \"./neutron/tests/fullstack\", pattern))"},{"line_number":35,"context_line":"    suite.addTests(_discover(loader, \"./neutron/tests/retargetable\","},{"line_number":36,"context_line":"                             pattern))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    return suite"}],"source_content_type":"text/x-python","patch_set":11,"id":"da9b358b_df711baa","line":35,"updated":"2015-03-31 01:33:50.000000000","message":"functional failure is caused by this line. sorry, had to step away before i got to the bottom of it. likely the discovery of tests is causing a cfg parse somewhere.","commit_id":"5dde4a768ef55e4b3cb66c697288cb31acf0517f"}],"neutron/tests/retargetable/base.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"fa7c89140b1e6aa5a57d6463f3f35d0319042b00","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    scenarios \u003d []"},{"line_number":52,"context_line":"    for conf in plugin_configurations:"},{"line_number":53,"context_line":"        name \u003d conf.plugin_name"},{"line_number":54,"context_line":"        class_name \u003d name[name.rfind(\u0027.\u0027) + 1:]"},{"line_number":55,"context_line":"        client \u003d client_fixtures.PluginClientFixture(conf)"},{"line_number":56,"context_line":"        scenarios.append((class_name, {\u0027client\u0027: client}))"},{"line_number":57,"context_line":"    return scenarios"}],"source_content_type":"text/x-python","patch_set":9,"id":"da9b358b_d841633b","line":54,"updated":"2015-03-29 15:38:27.000000000","message":"This might be a bit clearer:\n\nclass_name \u003d name.rsplit(\u0027.\u0027, 1)[-1]","commit_id":"1f613c634ca789b64227665b987fe1c600d182b6"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"9e4e5b2d5d75fd3abefbf120fa5972812f55176a","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    scenarios \u003d []"},{"line_number":52,"context_line":"    for conf in plugin_configurations:"},{"line_number":53,"context_line":"        name \u003d conf.plugin_name"},{"line_number":54,"context_line":"        class_name \u003d name[name.rfind(\u0027.\u0027) + 1:]"},{"line_number":55,"context_line":"        client \u003d client_fixtures.PluginClientFixture(conf)"},{"line_number":56,"context_line":"        scenarios.append((class_name, {\u0027client\u0027: client}))"},{"line_number":57,"context_line":"    return scenarios"}],"source_content_type":"text/x-python","patch_set":9,"id":"da9b358b_2091129a","line":54,"in_reply_to":"da9b358b_d841633b","updated":"2015-03-30 19:15:58.000000000","message":"Done","commit_id":"1f613c634ca789b64227665b987fe1c600d182b6"}],"neutron/tests/retargetable/client_fixtures.py":[{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"4dcb5e14fcd672ca773d8382ff5374e6cd9bf50a","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    \"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    @abc.abstractproperty"},{"line_number":40,"context_line":"    def NotFound(self):"},{"line_number":41,"context_line":"        \"\"\"The exception that indicates a resource could not be found."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        Tests can use this property to assert for a missing resource"}],"source_content_type":"text/x-python","patch_set":10,"id":"da9b358b_d7822d52","line":40,"updated":"2015-03-30 19:56:32.000000000","message":"At first, it\u0027s confusing to have a CamelCase property name, but we are to use to it so ti\u0027s fine.","commit_id":"6ffbcb5cbf8836938ecbe5094b77cddfa384b992"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"2486881129ccc1fcfc024c7809240f1df27b5a02","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    @property"},{"line_number":73,"context_line":"    def client(self):"},{"line_number":74,"context_line":"        if not hasattr(self, \u0027_client\u0027):"},{"line_number":75,"context_line":"            manager \u003d t_test.BaseTestCase.get_client_manager()"},{"line_number":76,"context_line":"            self._client \u003d manager.network_client"},{"line_number":77,"context_line":"        return self._client"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"da9b358b_3ecfee80","line":75,"updated":"2015-03-30 23:08:20.000000000","message":"Nit: this shadows the \u0027manager\u0027 module imported at line 26.","commit_id":"5dde4a768ef55e4b3cb66c697288cb31acf0517f"}],"neutron/tests/retargetable/test_example.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"fa7c89140b1e6aa5a57d6463f3f35d0319042b00","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def test_network_lifecycle(self):"},{"line_number":27,"context_line":"        net \u003d self.client.create_network(name\u003dtests_base.get_rand_name())"},{"line_number":28,"context_line":"        listed_networks \u003d dict((x.id, x.name)"},{"line_number":29,"context_line":"                               for x in self.client.get_networks())"},{"line_number":30,"context_line":"        self.assertIn(net.id, listed_networks)"},{"line_number":31,"context_line":"        self.assertEqual(listed_networks[net.id], net.name,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da9b358b_78b6d73e","line":28,"updated":"2015-03-29 15:38:27.000000000","message":"now that we\u0027re 2.7 dict comprehensions are allowed\n\n{x.id: x.name for x in self.client.get_networks()}","commit_id":"1f613c634ca789b64227665b987fe1c600d182b6"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"9e4e5b2d5d75fd3abefbf120fa5972812f55176a","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def test_network_lifecycle(self):"},{"line_number":27,"context_line":"        net \u003d self.client.create_network(name\u003dtests_base.get_rand_name())"},{"line_number":28,"context_line":"        listed_networks \u003d dict((x.id, x.name)"},{"line_number":29,"context_line":"                               for x in self.client.get_networks())"},{"line_number":30,"context_line":"        self.assertIn(net.id, listed_networks)"},{"line_number":31,"context_line":"        self.assertEqual(listed_networks[net.id], net.name,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da9b358b_c0794695","line":28,"in_reply_to":"da9b358b_78b6d73e","updated":"2015-03-30 19:15:58.000000000","message":"Done","commit_id":"1f613c634ca789b64227665b987fe1c600d182b6"}]}
