)]}'
{"neutron_tempest_plugin/api/test_routers.py":[{"author":{"_account_id":30156,"name":"Igor D.C.","email":"igor.duarte.cardoso@intel.com","username":"igordc"},"change_message_id":"40c18e2c266c51cd91fbb0fb3f3172fc5214abbb","unresolved":false,"context_lines":[{"line_number":290,"context_line":"        # Convert a centralized router to distributed firstly"},{"line_number":291,"context_line":"        router_args \u003d {\u0027tenant_id\u0027: self.client.tenant_id,"},{"line_number":292,"context_line":"                       \u0027distributed\u0027: False, \u0027ha\u0027: False}"},{"line_number":293,"context_line":"        # Create router with admin_state_up\u003dTrue so we can take it down"},{"line_number":294,"context_line":"        # + prior to setting the router to centralized later"},{"line_number":295,"context_line":"        router \u003d self.admin_client.create_router("},{"line_number":296,"context_line":"            data_utils.rand_name(\u0027router\u0027), admin_state_up\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_59b31799","line":293,"range":{"start_line":293,"start_character":49,"end_line":293,"end_character":71},"updated":"2019-07-11 22:58:43.000000000","message":"Is this logically correct? You can still take it down with admin_state_up false.","commit_id":"68ab19695fa3ceab476b9bfd262722d39a32cbc4"},{"author":{"_account_id":24797,"name":"Matt Welch","email":"matt.welch@intel.com","username":"mattw4"},"change_message_id":"49d323003bbde1305b32b390d6b85c9dd0d1105f","unresolved":false,"context_lines":[{"line_number":290,"context_line":"        # Convert a centralized router to distributed firstly"},{"line_number":291,"context_line":"        router_args \u003d {\u0027tenant_id\u0027: self.client.tenant_id,"},{"line_number":292,"context_line":"                       \u0027distributed\u0027: False, \u0027ha\u0027: False}"},{"line_number":293,"context_line":"        # Create router with admin_state_up\u003dTrue so we can take it down"},{"line_number":294,"context_line":"        # + prior to setting the router to centralized later"},{"line_number":295,"context_line":"        router \u003d self.admin_client.create_router("},{"line_number":296,"context_line":"            data_utils.rand_name(\u0027router\u0027), admin_state_up\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_5ce8e5e0","line":293,"range":{"start_line":293,"start_character":49,"end_line":293,"end_character":71},"in_reply_to":"7faddb67_59b31799","updated":"2019-07-11 23:51:05.000000000","message":"It\u0027s not required that we create the router with admin_state_up\u003dTrue, but I wanted to toggle that state during the test so I figured starting with it \"UP\" was better.\nI should change the comment to better explain the choice.","commit_id":"68ab19695fa3ceab476b9bfd262722d39a32cbc4"},{"author":{"_account_id":30156,"name":"Igor D.C.","email":"igor.duarte.cardoso@intel.com","username":"igordc"},"change_message_id":"7fc0e4b7a38765639350b9c781bd2a7b2d43cb18","unresolved":false,"context_lines":[{"line_number":290,"context_line":"        # Convert a centralized router to distributed firstly"},{"line_number":291,"context_line":"        router_args \u003d {\u0027tenant_id\u0027: self.client.tenant_id,"},{"line_number":292,"context_line":"                       \u0027distributed\u0027: False, \u0027ha\u0027: False}"},{"line_number":293,"context_line":"        # Create router with admin_state_up\u003dTrue so we can take it down"},{"line_number":294,"context_line":"        # + prior to setting the router to centralized later"},{"line_number":295,"context_line":"        router \u003d self.admin_client.create_router("},{"line_number":296,"context_line":"            data_utils.rand_name(\u0027router\u0027), admin_state_up\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_bc16b954","line":293,"range":{"start_line":293,"start_character":49,"end_line":293,"end_character":71},"in_reply_to":"7faddb67_5ce8e5e0","updated":"2019-07-12 00:13:23.000000000","message":"That\u0027s what I thought but just clarifying.","commit_id":"68ab19695fa3ceab476b9bfd262722d39a32cbc4"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"845ff4da666817c1f268555b9ff3b689d451c5fe","unresolved":false,"context_lines":[{"line_number":283,"context_line":"class DvrRoutersTestUpdateDistributedExtended(base_routers.BaseRouterTest):"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    required_extensions \u003d [\u0027dvr\u0027, \u0027l3-ha\u0027,"},{"line_number":286,"context_line":"                           \u0027router-admin-state-down-before-update\u0027]"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    @decorators.idempotent_id(\u00270ffb9973-0c1a-4b76-a1f2-060178057661\u0027)"},{"line_number":289,"context_line":"    def test_convert_centralized_router_to_distributed_extended(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_c6f6c55d","line":286,"range":{"start_line":286,"start_character":28,"end_line":286,"end_character":65},"updated":"2019-07-20 11:13:35.000000000","message":"is this extension really needed for those tests? IMO it should run properly also without this API extension available","commit_id":"23be2da1fac151166669ddd47d236ea3d9ddb171"},{"author":{"_account_id":24797,"name":"Matt Welch","email":"matt.welch@intel.com","username":"mattw4"},"change_message_id":"1fc0b093d2233855c00ab6bc944725ff3a9960b8","unresolved":false,"context_lines":[{"line_number":283,"context_line":"class DvrRoutersTestUpdateDistributedExtended(base_routers.BaseRouterTest):"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    required_extensions \u003d [\u0027dvr\u0027, \u0027l3-ha\u0027,"},{"line_number":286,"context_line":"                           \u0027router-admin-state-down-before-update\u0027]"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    @decorators.idempotent_id(\u00270ffb9973-0c1a-4b76-a1f2-060178057661\u0027)"},{"line_number":289,"context_line":"    def test_convert_centralized_router_to_distributed_extended(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_f3d03e56","line":286,"range":{"start_line":286,"start_character":28,"end_line":286,"end_character":65},"in_reply_to":"7faddb67_9e731cb2","updated":"2019-07-23 17:21:10.000000000","message":"Done","commit_id":"23be2da1fac151166669ddd47d236ea3d9ddb171"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"82810e2e4eb9a87a5e56effff238b251e9a70361","unresolved":false,"context_lines":[{"line_number":283,"context_line":"class DvrRoutersTestUpdateDistributedExtended(base_routers.BaseRouterTest):"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    required_extensions \u003d [\u0027dvr\u0027, \u0027l3-ha\u0027,"},{"line_number":286,"context_line":"                           \u0027router-admin-state-down-before-update\u0027]"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    @decorators.idempotent_id(\u00270ffb9973-0c1a-4b76-a1f2-060178057661\u0027)"},{"line_number":289,"context_line":"    def test_convert_centralized_router_to_distributed_extended(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_9e731cb2","line":286,"range":{"start_line":286,"start_character":28,"end_line":286,"end_character":65},"in_reply_to":"7faddb67_a32b6280","updated":"2019-07-23 08:24:13.000000000","message":"extension listed here needs to be in given in tempest config file and then tempest will run such test. If this extension will not be listed in tempest config, test will be skipped.\nIMO this test can be run always, even when there is no this extension added - it should also pass then, right? Even if it will only execute \"old\" path of code.","commit_id":"23be2da1fac151166669ddd47d236ea3d9ddb171"},{"author":{"_account_id":24797,"name":"Matt Welch","email":"matt.welch@intel.com","username":"mattw4"},"change_message_id":"ea4427d4fa98144a029bb2f4dc86bab109b95c00","unresolved":false,"context_lines":[{"line_number":283,"context_line":"class DvrRoutersTestUpdateDistributedExtended(base_routers.BaseRouterTest):"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    required_extensions \u003d [\u0027dvr\u0027, \u0027l3-ha\u0027,"},{"line_number":286,"context_line":"                           \u0027router-admin-state-down-before-update\u0027]"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    @decorators.idempotent_id(\u00270ffb9973-0c1a-4b76-a1f2-060178057661\u0027)"},{"line_number":289,"context_line":"    def test_convert_centralized_router_to_distributed_extended(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_a32b6280","line":286,"range":{"start_line":286,"start_character":28,"end_line":286,"end_character":65},"in_reply_to":"7faddb67_c6f6c55d","updated":"2019-07-22 23:15:51.000000000","message":"The test \u0027test_convert_distributed_router_back_to_centralized()\u0027 at L254 is covering the scenario where the \u0027router-admin-state-down-before-update\" extension is NOT enabled. The new tests perform similar operations (converting router D\u003c-\u003eC), but with the extension enabled.  Without the extension, wouldn\u0027t we only exercise the old code path?","commit_id":"23be2da1fac151166669ddd47d236ea3d9ddb171"},{"author":{"_account_id":30156,"name":"Igor D.C.","email":"igor.duarte.cardoso@intel.com","username":"igordc"},"change_message_id":"75befca025fdda65b09cf7fd3aa777850a025334","unresolved":false,"context_lines":[{"line_number":285,"context_line":"    required_extensions \u003d [\u0027dvr\u0027, \u0027l3-ha\u0027,"},{"line_number":286,"context_line":"                           \u0027router-admin-state-down-before-update\u0027]"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    @decorators.idempotent_id(\u00270ffb9973-0c1a-4b76-a1f2-060178057661\u0027)"},{"line_number":289,"context_line":"    def test_convert_centralized_router_to_distributed_extended(self):"},{"line_number":290,"context_line":"        router_args \u003d {\u0027tenant_id\u0027: self.client.tenant_id,"},{"line_number":291,"context_line":"                       \u0027distributed\u0027: False, \u0027ha\u0027: False}"},{"line_number":292,"context_line":"        router \u003d self.admin_client.create_router("},{"line_number":293,"context_line":"            data_utils.rand_name(\u0027router\u0027), admin_state_up\u003dTrue,"},{"line_number":294,"context_line":"            **router_args)[\u0027router\u0027]"},{"line_number":295,"context_line":"        self.addCleanup(self.admin_client.delete_router,"},{"line_number":296,"context_line":"                        router[\u0027id\u0027])"},{"line_number":297,"context_line":"        self.assertTrue(router[\u0027admin_state_up\u0027])"},{"line_number":298,"context_line":"        self.assertFalse(router[\u0027distributed\u0027])"},{"line_number":299,"context_line":"        # take router down to allow setting the router to distributed"},{"line_number":300,"context_line":"        update_body \u003d self.admin_client.update_router(router[\u0027id\u0027],"},{"line_number":301,"context_line":"                                                      admin_state_up\u003dFalse)"},{"line_number":302,"context_line":"        self.assertFalse(update_body[\u0027router\u0027][\u0027admin_state_up\u0027])"},{"line_number":303,"context_line":"        # set the router to distributed"},{"line_number":304,"context_line":"        update_body \u003d self.admin_client.update_router(router[\u0027id\u0027],"},{"line_number":305,"context_line":"                                                      distributed\u003dTrue)"},{"line_number":306,"context_line":"        self.assertTrue(update_body[\u0027router\u0027][\u0027distributed\u0027])"},{"line_number":307,"context_line":"        # bring the router back up"},{"line_number":308,"context_line":"        update_body \u003d self.admin_client.update_router(router[\u0027id\u0027],"},{"line_number":309,"context_line":"                                                      admin_state_up\u003dTrue)"},{"line_number":310,"context_line":"        self.assertTrue(router[\u0027admin_state_up\u0027])"},{"line_number":311,"context_line":"        self.assertTrue(router[\u0027distributed\u0027])"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    @decorators.idempotent_id(\u0027e9a8f55b-c535-44b7-8b0a-20af6a7c2921\u0027)"},{"line_number":314,"context_line":"    def test_convert_distributed_router_to_centralized_extended(self):"},{"line_number":315,"context_line":"        router_args \u003d {\u0027tenant_id\u0027: self.client.tenant_id,"},{"line_number":316,"context_line":"                       \u0027distributed\u0027: True, \u0027ha\u0027: False}"},{"line_number":317,"context_line":"        router \u003d self.admin_client.create_router("},{"line_number":318,"context_line":"            data_utils.rand_name(\u0027router\u0027), admin_state_up\u003dTrue,"},{"line_number":319,"context_line":"            **router_args)[\u0027router\u0027]"},{"line_number":320,"context_line":"        self.addCleanup(self.admin_client.delete_router,"},{"line_number":321,"context_line":"                        router[\u0027id\u0027])"},{"line_number":322,"context_line":"        self.assertTrue(router[\u0027admin_state_up\u0027])"},{"line_number":323,"context_line":"        self.assertTrue(router[\u0027distributed\u0027])"},{"line_number":324,"context_line":"        # take router down to allow setting the router to centralized"},{"line_number":325,"context_line":"        update_body \u003d self.admin_client.update_router(router[\u0027id\u0027],"},{"line_number":326,"context_line":"                                                      admin_state_up\u003dFalse)"},{"line_number":327,"context_line":"        self.assertFalse(update_body[\u0027router\u0027][\u0027admin_state_up\u0027])"},{"line_number":328,"context_line":"        # set router to centralized"},{"line_number":329,"context_line":"        update_body \u003d self.admin_client.update_router(router[\u0027id\u0027],"},{"line_number":330,"context_line":"                                                      distributed\u003dFalse)"},{"line_number":331,"context_line":"        self.assertFalse(update_body[\u0027router\u0027][\u0027distributed\u0027])"},{"line_number":332,"context_line":"        # bring router back up"},{"line_number":333,"context_line":"        update_body \u003d self.admin_client.update_router(router[\u0027id\u0027],"},{"line_number":334,"context_line":"                                                      admin_state_up\u003dTrue)"},{"line_number":335,"context_line":"        self.assertTrue(router[\u0027admin_state_up\u0027])"},{"line_number":336,"context_line":"        self.assertFalse(router[\u0027distributed\u0027])"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_4a67a5be","line":335,"range":{"start_line":288,"start_character":0,"end_line":335,"end_character":49},"updated":"2019-07-12 19:29:28.000000000","message":"Would definitely create a separate function just to hold all this duplicate code, but not a blocker for me.","commit_id":"23be2da1fac151166669ddd47d236ea3d9ddb171"},{"author":{"_account_id":24797,"name":"Matt Welch","email":"matt.welch@intel.com","username":"mattw4"},"change_message_id":"ea4427d4fa98144a029bb2f4dc86bab109b95c00","unresolved":false,"context_lines":[{"line_number":285,"context_line":"    required_extensions \u003d [\u0027dvr\u0027, \u0027l3-ha\u0027,"},{"line_number":286,"context_line":"                           \u0027router-admin-state-down-before-update\u0027]"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    @decorators.idempotent_id(\u00270ffb9973-0c1a-4b76-a1f2-060178057661\u0027)"},{"line_number":289,"context_line":"    def test_convert_centralized_router_to_distributed_extended(self):"},{"line_number":290,"context_line":"        router_args \u003d {\u0027tenant_id\u0027: self.client.tenant_id,"},{"line_number":291,"context_line":"                       \u0027distributed\u0027: False, \u0027ha\u0027: False}"},{"line_number":292,"context_line":"        router \u003d self.admin_client.create_router("},{"line_number":293,"context_line":"            data_utils.rand_name(\u0027router\u0027), admin_state_up\u003dTrue,"},{"line_number":294,"context_line":"            **router_args)[\u0027router\u0027]"},{"line_number":295,"context_line":"        self.addCleanup(self.admin_client.delete_router,"},{"line_number":296,"context_line":"                        router[\u0027id\u0027])"},{"line_number":297,"context_line":"        self.assertTrue(router[\u0027admin_state_up\u0027])"},{"line_number":298,"context_line":"        self.assertFalse(router[\u0027distributed\u0027])"},{"line_number":299,"context_line":"        # take router down to allow setting the router to distributed"},{"line_number":300,"context_line":"        update_body \u003d self.admin_client.update_router(router[\u0027id\u0027],"},{"line_number":301,"context_line":"                                                      admin_state_up\u003dFalse)"},{"line_number":302,"context_line":"        self.assertFalse(update_body[\u0027router\u0027][\u0027admin_state_up\u0027])"},{"line_number":303,"context_line":"        # set the router to distributed"},{"line_number":304,"context_line":"        update_body \u003d self.admin_client.update_router(router[\u0027id\u0027],"},{"line_number":305,"context_line":"                                                      distributed\u003dTrue)"},{"line_number":306,"context_line":"        self.assertTrue(update_body[\u0027router\u0027][\u0027distributed\u0027])"},{"line_number":307,"context_line":"        # bring the router back up"},{"line_number":308,"context_line":"        update_body \u003d self.admin_client.update_router(router[\u0027id\u0027],"},{"line_number":309,"context_line":"                                                      admin_state_up\u003dTrue)"},{"line_number":310,"context_line":"        self.assertTrue(router[\u0027admin_state_up\u0027])"},{"line_number":311,"context_line":"        self.assertTrue(router[\u0027distributed\u0027])"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    @decorators.idempotent_id(\u0027e9a8f55b-c535-44b7-8b0a-20af6a7c2921\u0027)"},{"line_number":314,"context_line":"    def test_convert_distributed_router_to_centralized_extended(self):"},{"line_number":315,"context_line":"        router_args \u003d {\u0027tenant_id\u0027: self.client.tenant_id,"},{"line_number":316,"context_line":"                       \u0027distributed\u0027: True, \u0027ha\u0027: False}"},{"line_number":317,"context_line":"        router \u003d self.admin_client.create_router("},{"line_number":318,"context_line":"            data_utils.rand_name(\u0027router\u0027), admin_state_up\u003dTrue,"},{"line_number":319,"context_line":"            **router_args)[\u0027router\u0027]"},{"line_number":320,"context_line":"        self.addCleanup(self.admin_client.delete_router,"},{"line_number":321,"context_line":"                        router[\u0027id\u0027])"},{"line_number":322,"context_line":"        self.assertTrue(router[\u0027admin_state_up\u0027])"},{"line_number":323,"context_line":"        self.assertTrue(router[\u0027distributed\u0027])"},{"line_number":324,"context_line":"        # take router down to allow setting the router to centralized"},{"line_number":325,"context_line":"        update_body \u003d self.admin_client.update_router(router[\u0027id\u0027],"},{"line_number":326,"context_line":"                                                      admin_state_up\u003dFalse)"},{"line_number":327,"context_line":"        self.assertFalse(update_body[\u0027router\u0027][\u0027admin_state_up\u0027])"},{"line_number":328,"context_line":"        # set router to centralized"},{"line_number":329,"context_line":"        update_body \u003d self.admin_client.update_router(router[\u0027id\u0027],"},{"line_number":330,"context_line":"                                                      distributed\u003dFalse)"},{"line_number":331,"context_line":"        self.assertFalse(update_body[\u0027router\u0027][\u0027distributed\u0027])"},{"line_number":332,"context_line":"        # bring router back up"},{"line_number":333,"context_line":"        update_body \u003d self.admin_client.update_router(router[\u0027id\u0027],"},{"line_number":334,"context_line":"                                                      admin_state_up\u003dTrue)"},{"line_number":335,"context_line":"        self.assertTrue(router[\u0027admin_state_up\u0027])"},{"line_number":336,"context_line":"        self.assertFalse(router[\u0027distributed\u0027])"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_e3307aeb","line":335,"range":{"start_line":288,"start_character":0,"end_line":335,"end_character":49},"in_reply_to":"7faddb67_4a67a5be","updated":"2019-07-22 23:15:51.000000000","message":"The two tests are very similar, but I don\u0027t feel like there is enough common code between the two that they can be cleanly broken up into appropriate functions.","commit_id":"23be2da1fac151166669ddd47d236ea3d9ddb171"}],"neutron_tempest_plugin/api/test_routers_negative.py":[{"author":{"_account_id":30156,"name":"Igor D.C.","email":"igor.duarte.cardoso@intel.com","username":"igordc"},"change_message_id":"40c18e2c266c51cd91fbb0fb3f3172fc5214abbb","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            **router_args)[\u0027router\u0027]"},{"line_number":111,"context_line":"        self.assertTrue(router[\u0027admin_state_up\u0027])"},{"line_number":112,"context_line":"        self.assertFalse(router[\u0027distributed\u0027])"},{"line_number":113,"context_line":"        # take the router down to modify distributed-\u003eTrue"},{"line_number":114,"context_line":"        update_body \u003d self.admin_client.update_router(router[\u0027id\u0027],"},{"line_number":115,"context_line":"                                                      admin_state_up\u003dFalse)"},{"line_number":116,"context_line":"        self.assertFalse(update_body[\u0027router\u0027][\u0027admin_state_up\u0027])"},{"line_number":117,"context_line":"        update_body \u003d self.admin_client.update_router(router[\u0027id\u0027],"},{"line_number":118,"context_line":"                                                      distributed\u003dTrue)"},{"line_number":119,"context_line":"        self.assertTrue(update_body[\u0027router\u0027][\u0027distributed\u0027])"},{"line_number":120,"context_line":"        # set admin_state_up\u003dTrue"},{"line_number":121,"context_line":"        update_body \u003d self.admin_client.update_router(router[\u0027id\u0027],"},{"line_number":122,"context_line":"                                                      admin_state_up\u003dTrue)"},{"line_number":123,"context_line":"        self.assertTrue(update_body[\u0027router\u0027][\u0027admin_state_up\u0027])"},{"line_number":124,"context_line":"        # attempt to set the router to centralized, catch BadRequest exception"},{"line_number":125,"context_line":"        with testtools.ExpectedException(lib_exc.BadRequest):"},{"line_number":126,"context_line":"            self.admin_client.update_router(router[\u0027id\u0027], distributed\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_f920c3ae","line":123,"range":{"start_line":113,"start_character":0,"end_line":123,"end_character":64},"updated":"2019-07-11 22:58:43.000000000","message":"Is this necessary?","commit_id":"68ab19695fa3ceab476b9bfd262722d39a32cbc4"},{"author":{"_account_id":24797,"name":"Matt Welch","email":"matt.welch@intel.com","username":"mattw4"},"change_message_id":"49d323003bbde1305b32b390d6b85c9dd0d1105f","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            **router_args)[\u0027router\u0027]"},{"line_number":111,"context_line":"        self.assertTrue(router[\u0027admin_state_up\u0027])"},{"line_number":112,"context_line":"        self.assertFalse(router[\u0027distributed\u0027])"},{"line_number":113,"context_line":"        # take the router down to modify distributed-\u003eTrue"},{"line_number":114,"context_line":"        update_body \u003d self.admin_client.update_router(router[\u0027id\u0027],"},{"line_number":115,"context_line":"                                                      admin_state_up\u003dFalse)"},{"line_number":116,"context_line":"        self.assertFalse(update_body[\u0027router\u0027][\u0027admin_state_up\u0027])"},{"line_number":117,"context_line":"        update_body \u003d self.admin_client.update_router(router[\u0027id\u0027],"},{"line_number":118,"context_line":"                                                      distributed\u003dTrue)"},{"line_number":119,"context_line":"        self.assertTrue(update_body[\u0027router\u0027][\u0027distributed\u0027])"},{"line_number":120,"context_line":"        # set admin_state_up\u003dTrue"},{"line_number":121,"context_line":"        update_body \u003d self.admin_client.update_router(router[\u0027id\u0027],"},{"line_number":122,"context_line":"                                                      admin_state_up\u003dTrue)"},{"line_number":123,"context_line":"        self.assertTrue(update_body[\u0027router\u0027][\u0027admin_state_up\u0027])"},{"line_number":124,"context_line":"        # attempt to set the router to centralized, catch BadRequest exception"},{"line_number":125,"context_line":"        with testtools.ExpectedException(lib_exc.BadRequest):"},{"line_number":126,"context_line":"            self.admin_client.update_router(router[\u0027id\u0027], distributed\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_dc7a95ef","line":123,"range":{"start_line":113,"start_character":0,"end_line":123,"end_character":64},"in_reply_to":"7faddb67_f920c3ae","updated":"2019-07-11 23:51:05.000000000","message":"I think we could start with the router admin_state_up\u003dTrue, distributed\u003dTrue and get the same effect.  I was thinking that the test should show the state toggling, but that functionality is tested in the positive tests.","commit_id":"68ab19695fa3ceab476b9bfd262722d39a32cbc4"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"845ff4da666817c1f268555b9ff3b689d451c5fe","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        self.assertTrue(router[\u0027admin_state_up\u0027])"},{"line_number":97,"context_line":"        self.assertFalse(router[\u0027distributed\u0027])"},{"line_number":98,"context_line":"        # attempt to set the router to distributed, catch BadRequest exception"},{"line_number":99,"context_line":"        with testtools.ExpectedException(lib_exc.BadRequest):"},{"line_number":100,"context_line":"            self.admin_client.update_router(router[\u0027id\u0027], distributed\u003dTrue)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    @decorators.attr(type\u003d\u0027negative\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_e6050147","line":99,"updated":"2019-07-20 11:13:35.000000000","message":"nit: there is self.assertRaises() method which can be used here as well","commit_id":"23be2da1fac151166669ddd47d236ea3d9ddb171"},{"author":{"_account_id":24797,"name":"Matt Welch","email":"matt.welch@intel.com","username":"mattw4"},"change_message_id":"ea4427d4fa98144a029bb2f4dc86bab109b95c00","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        self.assertTrue(router[\u0027admin_state_up\u0027])"},{"line_number":97,"context_line":"        self.assertFalse(router[\u0027distributed\u0027])"},{"line_number":98,"context_line":"        # attempt to set the router to distributed, catch BadRequest exception"},{"line_number":99,"context_line":"        with testtools.ExpectedException(lib_exc.BadRequest):"},{"line_number":100,"context_line":"            self.admin_client.update_router(router[\u0027id\u0027], distributed\u003dTrue)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    @decorators.attr(type\u003d\u0027negative\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_c348de5d","line":99,"in_reply_to":"7faddb67_e6050147","updated":"2019-07-22 23:15:51.000000000","message":"Done","commit_id":"23be2da1fac151166669ddd47d236ea3d9ddb171"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"845ff4da666817c1f268555b9ff3b689d451c5fe","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                                                      admin_state_up\u003dTrue)"},{"line_number":123,"context_line":"        self.assertTrue(update_body[\u0027router\u0027][\u0027admin_state_up\u0027])"},{"line_number":124,"context_line":"        # attempt to set the router to centralized, catch BadRequest exception"},{"line_number":125,"context_line":"        with testtools.ExpectedException(lib_exc.BadRequest):"},{"line_number":126,"context_line":"            self.admin_client.update_router(router[\u0027id\u0027], distributed\u003dFalse)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_a6fb8944","line":125,"updated":"2019-07-20 11:13:35.000000000","message":"same nit here","commit_id":"23be2da1fac151166669ddd47d236ea3d9ddb171"},{"author":{"_account_id":24797,"name":"Matt Welch","email":"matt.welch@intel.com","username":"mattw4"},"change_message_id":"ea4427d4fa98144a029bb2f4dc86bab109b95c00","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                                                      admin_state_up\u003dTrue)"},{"line_number":123,"context_line":"        self.assertTrue(update_body[\u0027router\u0027][\u0027admin_state_up\u0027])"},{"line_number":124,"context_line":"        # attempt to set the router to centralized, catch BadRequest exception"},{"line_number":125,"context_line":"        with testtools.ExpectedException(lib_exc.BadRequest):"},{"line_number":126,"context_line":"            self.admin_client.update_router(router[\u0027id\u0027], distributed\u003dFalse)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_e345da44","line":125,"in_reply_to":"7faddb67_a6fb8944","updated":"2019-07-22 23:15:51.000000000","message":"Done","commit_id":"23be2da1fac151166669ddd47d236ea3d9ddb171"}]}
