)]}'
{"neutron/services/trunk/drivers/openvswitch/agent/ovsdb_handler.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"b7e3aa4c572d3699a3f51b65376addd108468ce0","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        # Handle condition when there was bridge in both added and removed"},{"line_number":136,"context_line":"        # events and handle_trunk_remove greenthread was executed before"},{"line_number":137,"context_line":"        # handle_trunk_add"},{"line_number":138,"context_line":"        if not bridge.bridge_exists(bridge.br_name):"},{"line_number":139,"context_line":"            LOG.debug(\"The bridge %s was deleted before it was handled.\")"},{"line_number":140,"context_line":"            return"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_b87a8d22","line":138,"range":{"start_line":138,"start_character":36,"end_line":138,"end_character":50},"updated":"2016-09-12 15:04:40.000000000","message":"I can also call to bridge_name directly here.","commit_id":"73bb941bc9c853602f7626954719390ce3d75c20"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"9efa8b04eb745b3b2d00f9ed2ae6e51f2c4817e2","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        # events and handle_trunk_remove greenthread was executed before"},{"line_number":137,"context_line":"        # handle_trunk_add"},{"line_number":138,"context_line":"        if not bridge.bridge_exists(bridge.br_name):"},{"line_number":139,"context_line":"            LOG.debug(\"The bridge %s was deleted before it was handled.\")"},{"line_number":140,"context_line":"            return"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        bridge_has_port_predicate \u003d functools.partial("}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_f28d16d4","line":139,"updated":"2016-09-12 14:48:41.000000000","message":"there\u0027s no bridge name.","commit_id":"73bb941bc9c853602f7626954719390ce3d75c20"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"870c5acb175da17bf3377d23dcb78d28ca654738","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        # events and handle_trunk_remove greenthread was executed before"},{"line_number":137,"context_line":"        # handle_trunk_add"},{"line_number":138,"context_line":"        if not bridge.bridge_exists(bridge.br_name):"},{"line_number":139,"context_line":"            LOG.debug(\"The bridge %s was deleted before it was handled.\")"},{"line_number":140,"context_line":"            return"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        bridge_has_port_predicate \u003d functools.partial("}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_1e89a126","line":139,"in_reply_to":"9a89bdaa_d8aaf170","updated":"2016-09-12 15:31:14.000000000","message":"Unittests won\u0027t help here :(","commit_id":"73bb941bc9c853602f7626954719390ce3d75c20"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"b7e3aa4c572d3699a3f51b65376addd108468ce0","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        # events and handle_trunk_remove greenthread was executed before"},{"line_number":137,"context_line":"        # handle_trunk_add"},{"line_number":138,"context_line":"        if not bridge.bridge_exists(bridge.br_name):"},{"line_number":139,"context_line":"            LOG.debug(\"The bridge %s was deleted before it was handled.\")"},{"line_number":140,"context_line":"            return"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        bridge_has_port_predicate \u003d functools.partial("}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_d8aaf170","line":139,"in_reply_to":"9a89bdaa_f28d16d4","updated":"2016-09-12 15:04:40.000000000","message":"I forgot to cover it with unittests.","commit_id":"73bb941bc9c853602f7626954719390ce3d75c20"}],"neutron/tests/unit/services/trunk/drivers/openvswitch/agent/test_ovsdb_handler.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"465c3b21c003c51fa26250d20225159c5cb98e60","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    def test_handle_trunk_add_missing_bridge(self, br):"},{"line_number":168,"context_line":"        br.return_value.bridge_exists.return_value \u003d False"},{"line_number":169,"context_line":"        with mock.patch.object("},{"line_number":170,"context_line":"                ovsdb_handler, \u0027bridge_has_instance_port\u0027) as has_port_mock:"},{"line_number":171,"context_line":"            self.ovsdb_handler.handle_trunk_add(\u0027foo\u0027)"},{"line_number":172,"context_line":"        self.assertFalse(has_port_mock.called)"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_1d719e44","line":170,"updated":"2016-09-12 18:34:48.000000000","message":"this is somewhat of an implicit assumption of the correctness of the method, but I can\u0027t think of a better way to test this code path.","commit_id":"a701f0901f23f70ede19dc6ade018238e7827264"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"dfcacabcad98bafe35068594de85e318587e9e4f","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    def test_handle_trunk_add_missing_bridge(self, br):"},{"line_number":168,"context_line":"        br.return_value.bridge_exists.return_value \u003d False"},{"line_number":169,"context_line":"        with mock.patch.object("},{"line_number":170,"context_line":"                ovsdb_handler, \u0027bridge_has_instance_port\u0027) as has_port_mock:"},{"line_number":171,"context_line":"            self.ovsdb_handler.handle_trunk_add(\u0027foo\u0027)"},{"line_number":172,"context_line":"        self.assertFalse(has_port_mock.called)"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_c1b2f4e4","line":170,"in_reply_to":"9a89bdaa_1d719e44","updated":"2016-09-12 18:58:00.000000000","message":"This is to make sure we don\u0027t wait for tap device to appear on the trunk bridge when trunk bridge doesn\u0027t exist.","commit_id":"a701f0901f23f70ede19dc6ade018238e7827264"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"da54a711f484a2ebe102dc73565140afbbe07369","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    def test_handle_trunk_add_missing_bridge(self, br):"},{"line_number":168,"context_line":"        br.return_value.bridge_exists.return_value \u003d False"},{"line_number":169,"context_line":"        with mock.patch.object("},{"line_number":170,"context_line":"                ovsdb_handler, \u0027bridge_has_instance_port\u0027) as has_port_mock:"},{"line_number":171,"context_line":"            self.ovsdb_handler.handle_trunk_add(\u0027foo\u0027)"},{"line_number":172,"context_line":"        self.assertFalse(has_port_mock.called)"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_617a08f3","line":170,"in_reply_to":"9a89bdaa_c1b2f4e4","updated":"2016-09-12 19:04:01.000000000","message":"Yeah, understood. But say the method had raised, the test would have been more explicit.","commit_id":"a701f0901f23f70ede19dc6ade018238e7827264"}]}
