)]}'
{"tempest/api/network/base_routers.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1ec300bc02845b02fbf06aa47a59f013b1000ac8","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":72,"context_line":"        self.assertEqual(port_id, body[\u0027port_id\u0027])"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def _add_router_interface_with_port_id(self, router_id, port_id):"},{"line_number":75,"context_line":"        resp, interface \u003d self.admin_client.add_router_interface_with_port_id("},{"line_number":76,"context_line":"            router_id, port_id)"},{"line_number":77,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_888d7934","line":74,"updated":"2014-08-18 08:22:24.000000000","message":"replace this function with below one-\n\ndef _test_add_remove_router_interface_with_port_id(self, network, created_router):\n        port_body \u003d self.client.create_port(\n            network_id\u003dnetwork[\u0027id\u0027])\n        # add router interface to port created above\n        resp, interface \u003d self.client.add_router_interface_with_port_id(\n            created_router[\u0027id\u0027], port_body[\u0027port\u0027][\u0027id\u0027])\n        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])\n        self.addCleanup(self._remove_router_interface_with_port_id,\n                        created_router[\u0027id\u0027], port_body[\u0027port\u0027][\u0027id\u0027])\n        self.assertIn(\u0027subnet_id\u0027, interface.keys())\n        self.assertIn(\u0027port_id\u0027, interface.keys())\n        # Verify router id is equal to device id in port details\n        resp, show_port_body \u003d self.client.show_port(\n            interface[\u0027port_id\u0027])\n        self.assertEqual(show_port_body[\u0027port\u0027][\u0027device_id\u0027],\n                         router[\u0027id\u0027])\n        return show_port_body","commit_id":"0040d86f82afb68304841c2a2b1c1e48a0ade78a"}],"tempest/api/network/test_routers.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0a8751495a6335a1be7dfeacbfa55c88c2723872","unresolved":false,"context_lines":[{"line_number":382,"context_line":"        self.assertTrue(show_body[\u0027router\u0027][\u0027distributed\u0027])"},{"line_number":383,"context_line":"        resp, show_body \u003d self.client.show_router(self.router[\u0027id\u0027])"},{"line_number":384,"context_line":"        self.assertNotIn(\u0027distributed\u0027, show_body[\u0027router\u0027])"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":387,"context_line":"    def test_add_remove_router_interface_with_port_id(self):"},{"line_number":388,"context_line":"        network \u003d self.create_network()"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ac7a964_e29feb4e","line":385,"updated":"2014-08-14 06:26:33.000000000","message":"test_add_remove_router_interface_with_port_id already present in RoutersTest class (which does not verify router interface). So for this case IMO, the common code as helper method can go in BaseRouterTest class and let\u0027s use that in already existing test case of RoutersTest and new test case of DvrRoutersTest.  router interface can be verified in base method itself by talking that as parameter which router interface to be verify.","commit_id":"6078a6fcdba2ff4cce94f3044d64eb64c5c3f47f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1ec300bc02845b02fbf06aa47a59f013b1000ac8","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":151,"context_line":"    def test_add_remove_router_interface_with_port_id(self):"},{"line_number":152,"context_line":"        network \u003d self.create_network()"},{"line_number":153,"context_line":"        self.create_subnet(network)"},{"line_number":154,"context_line":"        router \u003d self._create_router(data_utils.rand_name(\u0027router-\u0027))"},{"line_number":155,"context_line":"        resp, port_body \u003d self.client.create_port("},{"line_number":156,"context_line":"            network_id\u003dnetwork[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_6879fdfb","line":153,"updated":"2014-08-18 08:22:24.000000000","message":"self._test_add_remove_router_interface_with_port_id(network, router)\n\nremove L155 to L169","commit_id":"0040d86f82afb68304841c2a2b1c1e48a0ade78a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1ec300bc02845b02fbf06aa47a59f013b1000ac8","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        self.assertNotIn(\u0027distributed\u0027, show_body[\u0027router\u0027])"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":387,"context_line":"    def test_create_port_with_router_interface_distributed(self):"},{"line_number":388,"context_line":"        network \u003d self.create_network()"},{"line_number":389,"context_line":"        self.create_subnet(network)"},{"line_number":390,"context_line":"        resp, create_body \u003d self.admin_client.create_router("}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_88657947","line":387,"updated":"2014-08-18 08:22:24.000000000","message":"I think test_add_remove_router_interface_with_port_id() is much better name for this test.","commit_id":"0040d86f82afb68304841c2a2b1c1e48a0ade78a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1ec300bc02845b02fbf06aa47a59f013b1000ac8","unresolved":false,"context_lines":[{"line_number":387,"context_line":"    def test_create_port_with_router_interface_distributed(self):"},{"line_number":388,"context_line":"        network \u003d self.create_network()"},{"line_number":389,"context_line":"        self.create_subnet(network)"},{"line_number":390,"context_line":"        resp, create_body \u003d self.admin_client.create_router("},{"line_number":391,"context_line":"            data_utils.rand_name(\u0027router\u0027), distributed\u003dTrue)"},{"line_number":392,"context_line":"        self.addCleanup(self._delete_router,"},{"line_number":393,"context_line":"                        create_body[\u0027router\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_e8d0adf9","line":390,"updated":"2014-08-18 08:22:24.000000000","message":"unused var resp.","commit_id":"0040d86f82afb68304841c2a2b1c1e48a0ade78a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1ec300bc02845b02fbf06aa47a59f013b1000ac8","unresolved":false,"context_lines":[{"line_number":391,"context_line":"            data_utils.rand_name(\u0027router\u0027), distributed\u003dTrue)"},{"line_number":392,"context_line":"        self.addCleanup(self._delete_router,"},{"line_number":393,"context_line":"                        create_body[\u0027router\u0027][\u0027id\u0027],"},{"line_number":394,"context_line":"                        self.admin_client)"},{"line_number":395,"context_line":"        resp, port_body \u003d self.client.create_port("},{"line_number":396,"context_line":"            network_id\u003dnetwork[\u0027id\u0027])"},{"line_number":397,"context_line":"        interface \u003d self._add_router_interface_with_port_id("}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_a8b075de","line":394,"updated":"2014-08-18 08:22:24.000000000","message":"show_port_body \u003d self._test_add_remove_router_interface_with_port_id(network, create_body)\n\nRemove L395 to 400","commit_id":"0040d86f82afb68304841c2a2b1c1e48a0ade78a"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"0d9f451663a676d19adfbcc072db22782282234e","unresolved":false,"context_lines":[{"line_number":388,"context_line":"        network \u003d self.create_network()"},{"line_number":389,"context_line":"        self.create_subnet(network)"},{"line_number":390,"context_line":"        create_body \u003d self.admin_client.create_router("},{"line_number":391,"context_line":"            data_utils.rand_name(\u0027router\u0027), distributed\u003dTrue)"},{"line_number":392,"context_line":"        router \u003d create_body[1]"},{"line_number":393,"context_line":"        self.addCleanup(self._delete_router,"},{"line_number":394,"context_line":"                        router[\u0027router\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":5,"id":"1abeadc6_5aba0c0b","line":391,"updated":"2014-08-19 10:55:11.000000000","message":"Add check of status after creation of router. self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])","commit_id":"7260e093ccc29996bc86fc065567fec31178f9ca"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"e1ee030fd84055b3e5d10f2c07086242c5d16c90","unresolved":false,"context_lines":[{"line_number":389,"context_line":"        self.create_subnet(network)"},{"line_number":390,"context_line":"        resp, create_body \u003d self.admin_client.create_router("},{"line_number":391,"context_line":"            data_utils.rand_name(\u0027router\u0027), distributed\u003dTrue)"},{"line_number":392,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":393,"context_line":"        self.addCleanup(self._delete_router,"},{"line_number":394,"context_line":"                        create_body[\u0027router\u0027][\u0027id\u0027],"},{"line_number":395,"context_line":"                        self.admin_client)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1abeadc6_834c0ea0","line":392,"updated":"2014-08-20 13:20:08.000000000","message":"API response success should be not be checked there. See https://review.openstack.org/#/c/114186/7 for reference.","commit_id":"b45497d0f088c20e451e67681953a4943911d7c4"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"e1ee030fd84055b3e5d10f2c07086242c5d16c90","unresolved":false,"context_lines":[{"line_number":404,"context_line":"        self.create_subnet(network)"},{"line_number":405,"context_line":"        resp, create_body \u003d self.admin_client.create_router("},{"line_number":406,"context_line":"            data_utils.rand_name(\u0027router\u0027), distributed\u003dTrue)"},{"line_number":407,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":408,"context_line":"        self.addCleanup(self._delete_router,"},{"line_number":409,"context_line":"                        create_body[\u0027router\u0027][\u0027id\u0027],"},{"line_number":410,"context_line":"                        self.admin_client)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1abeadc6_03271ecb","line":407,"updated":"2014-08-20 13:20:08.000000000","message":"The same.","commit_id":"b45497d0f088c20e451e67681953a4943911d7c4"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"ebc251736cc2144e5675d661a37a93d9b680b26d","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        resp, port_list \u003d self.admin_client.list_ports("},{"line_number":401,"context_line":"            device_id\u003drouter[\u0027id\u0027],"},{"line_number":402,"context_line":"            device_owner\u003d\u0027network:router_centralized_snat\u0027)"},{"line_number":403,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_a44ec194","line":403,"updated":"2014-11-19 08:10:30.000000000","message":"It is not necessary to check status now. Remove this check.","commit_id":"bbd1b8575df5b16bb4a49be6bcefd122ecfcaff3"}],"tempest/api/network/test_routers_negative.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0a8751495a6335a1be7dfeacbfa55c88c2723872","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                self.admin_client.add_router_interface_with_subnet_id,"},{"line_number":121,"context_line":"                create_body[\u0027router\u0027][\u0027id\u0027],"},{"line_number":122,"context_line":"                self.subnet[\u0027id\u0027])"},{"line_number":123,"context_line":"        self.addCleanup(self._delete_router,"},{"line_number":124,"context_line":"                        create_body[\u0027router\u0027][\u0027id\u0027],"},{"line_number":125,"context_line":"                        self.admin_client)"},{"line_number":126,"context_line":"        self.addCleanup(self.admin_client.remove_router_interface_with_port_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ac7a964_224643c0","line":123,"updated":"2014-08-14 06:26:33.000000000","message":"cleanup needs to be just after the resource creation. for example delete_router clean up after L114","commit_id":"6078a6fcdba2ff4cce94f3044d64eb64c5c3f47f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1ec300bc02845b02fbf06aa47a59f013b1000ac8","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027, \u0027smoke\u0027])"},{"line_number":112,"context_line":"    def test_router_interface_when_port_on_same_subnet_exits_returns_400(self):"},{"line_number":113,"context_line":"        resp, create_body \u003d self.admin_client.create_router("},{"line_number":114,"context_line":"            data_utils.rand_name(\u0027router\u0027), distributed\u003dTrue)"},{"line_number":115,"context_line":"        self.addCleanup(self._delete_router,"},{"line_number":116,"context_line":"                        create_body[\u0027router\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_05d874ee","line":113,"updated":"2014-08-18 08:22:24.000000000","message":"unused var resp","commit_id":"0040d86f82afb68304841c2a2b1c1e48a0ade78a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1ec300bc02845b02fbf06aa47a59f013b1000ac8","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        self.addCleanup(self._delete_router,"},{"line_number":116,"context_line":"                        create_body[\u0027router\u0027][\u0027id\u0027],"},{"line_number":117,"context_line":"                        self.admin_client)"},{"line_number":118,"context_line":"        resp, port_body \u003d self.admin_client.create_port("},{"line_number":119,"context_line":"            network_id\u003dself.network[\u0027id\u0027])"},{"line_number":120,"context_line":"        self._add_router_interface_with_port_id("},{"line_number":121,"context_line":"            create_body[\u0027router\u0027][\u0027id\u0027], port_body[\u0027port\u0027][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_45e26ca0","line":118,"updated":"2014-08-18 08:22:24.000000000","message":"ditto.\nAlso add the cleanup for create_port also.","commit_id":"0040d86f82afb68304841c2a2b1c1e48a0ade78a"}]}
