)]}'
{"openstack_dashboard/dashboards/identity/projects/tests.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import datetime"},{"line_number":16,"context_line":"import logging"},{"line_number":17,"context_line":"import pytest"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from django.test import tag"},{"line_number":20,"context_line":"from django.test.utils import override_settings"}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_b3287d34","line":17,"updated":"2020-03-26 14:34:05.000000000","message":"pytest is not a standard library, so it is not the right import group.","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"0e3215c2333189097c73a26d59e4b8a9f7af0ecf","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import datetime"},{"line_number":16,"context_line":"import logging"},{"line_number":17,"context_line":"import pytest"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from django.test import tag"},{"line_number":20,"context_line":"from django.test.utils import override_settings"}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_69d2825e","line":17,"in_reply_to":"df33271e_b3287d34","updated":"2020-03-26 16:06:46.000000000","message":"Done","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":1630,"context_line":"@pytest.mark.skip(\u0027This test was always skipped for selenium, \u0027"},{"line_number":1631,"context_line":"                  \u0027because it falls under SkipIf SKIP_UNITTEST\u0027)"},{"line_number":1632,"context_line":"@pytest.mark.selenium"},{"line_number":1633,"context_line":"@tag(\u0027selenium\u0027)"},{"line_number":1634,"context_line":"class SeleniumTests(test.SeleniumAdminTestCase, test.TestCase):"},{"line_number":1635,"context_line":"    @test.create_mocks({api.keystone: (\u0027get_default_domain\u0027,"},{"line_number":1636,"context_line":"                                       \u0027get_default_role\u0027,"}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_d3e1c1fe","line":1633,"updated":"2020-03-26 14:34:05.000000000","message":"This class is specific to horizon repo. Do we need django tag?","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"0b2729db5ea1df3130e23a25e6f432bb9f168a4c","unresolved":false,"context_lines":[{"line_number":1630,"context_line":"@pytest.mark.skip(\u0027This test was always skipped for selenium, \u0027"},{"line_number":1631,"context_line":"                  \u0027because it falls under SkipIf SKIP_UNITTEST\u0027)"},{"line_number":1632,"context_line":"@pytest.mark.selenium"},{"line_number":1633,"context_line":"@tag(\u0027selenium\u0027)"},{"line_number":1634,"context_line":"class SeleniumTests(test.SeleniumAdminTestCase, test.TestCase):"},{"line_number":1635,"context_line":"    @test.create_mocks({api.keystone: (\u0027get_default_domain\u0027,"},{"line_number":1636,"context_line":"                                       \u0027get_default_role\u0027,"}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_c4ca956c","line":1633,"in_reply_to":"df33271e_86ea55a9","updated":"2020-03-26 16:17:00.000000000","message":"It is true if the class is used by horizon plugin tests. Is this class used in horizon plugins?","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"0e3215c2333189097c73a26d59e4b8a9f7af0ecf","unresolved":false,"context_lines":[{"line_number":1630,"context_line":"@pytest.mark.skip(\u0027This test was always skipped for selenium, \u0027"},{"line_number":1631,"context_line":"                  \u0027because it falls under SkipIf SKIP_UNITTEST\u0027)"},{"line_number":1632,"context_line":"@pytest.mark.selenium"},{"line_number":1633,"context_line":"@tag(\u0027selenium\u0027)"},{"line_number":1634,"context_line":"class SeleniumTests(test.SeleniumAdminTestCase, test.TestCase):"},{"line_number":1635,"context_line":"    @test.create_mocks({api.keystone: (\u0027get_default_domain\u0027,"},{"line_number":1636,"context_line":"                                       \u0027get_default_role\u0027,"}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_86ea55a9","line":1633,"in_reply_to":"df33271e_d3e1c1fe","updated":"2020-03-26 16:06:46.000000000","message":"Ivan Kolodyazhny said that tags should not be deleted.","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"}],"openstack_dashboard/test/integration_tests/helpers.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f69b5f10dc57a98d8e11e0fd5372c5167e6d36a9","unresolved":false,"context_lines":[{"line_number":304,"context_line":""},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"@pytest.mark.integration"},{"line_number":307,"context_line":"class TestCase(BaseTestCase, AssertsMixin):"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    TEST_USER_NAME \u003d BaseTestCase.CONFIG.identity.username"},{"line_number":310,"context_line":"    TEST_PASSWORD \u003d BaseTestCase.CONFIG.identity.password"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_ac1ae3c8","line":307,"updated":"2020-03-04 20:55:23.000000000","message":"This class is used not only in horizon but also in horizon plugins.\nIntegration tests in horizon plugins use Django test runner.\nOne example is heat-dashboard: [1] and [2].\nCould you consider horizon plugin usage without breakage?\n\nI haven\u0027t checked all possible cases. This class might be one of them. Other tag usages might affect horizon plugins as well.\n\n[1] https://opendev.org/openstack/heat-dashboard/src/branch/master/heat_dashboard/test/integration/test_basic.py#L18\n[2] https://opendev.org/openstack/heat-dashboard/src/branch/master/tox.ini#L22","commit_id":"75e8c180ce4289d86135954350753602d3cef64a"}],"openstack_dashboard/test/integration_tests/tests/test_floatingips.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":42,"context_line":"class TestFloatingipAssociateDisassociate(helpers.TestCase):"},{"line_number":43,"context_line":"    \"\"\"Checks that the user is able to Associate/Disassociate floatingip.\"\"\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @pytest.mark.skip"},{"line_number":46,"context_line":"    def test_floatingip_associate_disassociate(self):"},{"line_number":47,"context_line":"        instance_name \u003d helpers.gen_random_resource_name(\u0027instance\u0027,"},{"line_number":48,"context_line":"                                                         timestamp\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_d3ca616c","line":45,"updated":"2020-03-26 14:34:05.000000000","message":"I would like to see the reason to skip the test. Doesn\u0027t pytest provide a way to note a reason?","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"0e3215c2333189097c73a26d59e4b8a9f7af0ecf","unresolved":false,"context_lines":[{"line_number":42,"context_line":"class TestFloatingipAssociateDisassociate(helpers.TestCase):"},{"line_number":43,"context_line":"    \"\"\"Checks that the user is able to Associate/Disassociate floatingip.\"\"\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @pytest.mark.skip"},{"line_number":46,"context_line":"    def test_floatingip_associate_disassociate(self):"},{"line_number":47,"context_line":"        instance_name \u003d helpers.gen_random_resource_name(\u0027instance\u0027,"},{"line_number":48,"context_line":"                                                         timestamp\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_693722b2","line":45,"in_reply_to":"df33271e_d3ca616c","updated":"2020-03-26 16:06:46.000000000","message":"Done","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"}],"openstack_dashboard/test/integration_tests/tests/test_images.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        self.assertFalse(images_page.find_message_and_dismiss(messages.ERROR))"},{"line_number":73,"context_line":"        self.assertFalse(images_page.is_image_present(self.IMAGE_NAME))"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    @pytest.mark.skip"},{"line_number":76,"context_line":"    def test_image_create_delete(self):"},{"line_number":77,"context_line":"        \"\"\"tests the image creation and deletion functionalities:"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_73a1d5a9","line":75,"updated":"2020-03-26 14:34:05.000000000","message":"I would like to see a reason to skip the test. The proposed code loses the information.","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"0e3215c2333189097c73a26d59e4b8a9f7af0ecf","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        self.assertFalse(images_page.find_message_and_dismiss(messages.ERROR))"},{"line_number":73,"context_line":"        self.assertFalse(images_page.is_image_present(self.IMAGE_NAME))"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    @pytest.mark.skip"},{"line_number":76,"context_line":"    def test_image_create_delete(self):"},{"line_number":77,"context_line":"        \"\"\"tests the image creation and deletion functionalities:"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_09fe56ad","line":75,"in_reply_to":"df33271e_73a1d5a9","updated":"2020-03-26 16:06:46.000000000","message":"Done","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":334,"context_line":"    def images_page(self):"},{"line_number":335,"context_line":"        return self.home_pg.go_to_admin_compute_imagespage()"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    @pytest.mark.skip"},{"line_number":338,"context_line":"    def test_image_create_delete(self):"},{"line_number":339,"context_line":"        super(TestImagesAdmin, self).test_image_create_delete()"},{"line_number":340,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_53a491b9","line":337,"updated":"2020-03-26 14:34:05.000000000","message":"same as above","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"0e3215c2333189097c73a26d59e4b8a9f7af0ecf","unresolved":false,"context_lines":[{"line_number":334,"context_line":"    def images_page(self):"},{"line_number":335,"context_line":"        return self.home_pg.go_to_admin_compute_imagespage()"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    @pytest.mark.skip"},{"line_number":338,"context_line":"    def test_image_create_delete(self):"},{"line_number":339,"context_line":"        super(TestImagesAdmin, self).test_image_create_delete()"},{"line_number":340,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_692e0244","line":337,"in_reply_to":"df33271e_53a491b9","updated":"2020-03-26 16:06:46.000000000","message":"Done","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"}],"openstack_dashboard/test/integration_tests/tests/test_instances.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def instances_page(self):"},{"line_number":24,"context_line":"        return self.home_pg.go_to_project_compute_instancespage()"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @pytest.mark.skip"},{"line_number":27,"context_line":"    def test_create_delete_instance(self):"},{"line_number":28,"context_line":"        \"\"\"tests the instance creation and deletion functionality:"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_f394c546","line":26,"updated":"2020-03-26 14:34:05.000000000","message":"same comment as for openstack_dashboard/test/integration_tests/tests/test_images.py","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"0e3215c2333189097c73a26d59e4b8a9f7af0ecf","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def instances_page(self):"},{"line_number":24,"context_line":"        return self.home_pg.go_to_project_compute_instancespage()"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @pytest.mark.skip"},{"line_number":27,"context_line":"    def test_create_delete_instance(self):"},{"line_number":28,"context_line":"        \"\"\"tests the instance creation and deletion functionality:"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_c91c6e15","line":26,"in_reply_to":"df33271e_f394c546","updated":"2020-03-26 16:06:46.000000000","message":"Done","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            instances_page.find_message_and_dismiss(messages.ERROR))"},{"line_number":50,"context_line":"        self.assertTrue(instances_page.is_instance_deleted(self.INSTANCE_NAME))"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @pytest.mark.skip"},{"line_number":53,"context_line":"    def test_instances_pagination(self):"},{"line_number":54,"context_line":"        \"\"\"This test checks instance pagination"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_339f4d60","line":52,"updated":"2020-03-26 14:34:05.000000000","message":"same as above","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"0e3215c2333189097c73a26d59e4b8a9f7af0ecf","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            instances_page.find_message_and_dismiss(messages.ERROR))"},{"line_number":50,"context_line":"        self.assertTrue(instances_page.is_instance_deleted(self.INSTANCE_NAME))"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @pytest.mark.skip"},{"line_number":53,"context_line":"    def test_instances_pagination(self):"},{"line_number":54,"context_line":"        \"\"\"This test checks instance pagination"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_09d656f2","line":52,"in_reply_to":"df33271e_339f4d60","updated":"2020-03-26 16:06:46.000000000","message":"Done","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            instances_page.find_message_and_dismiss(messages.SUCCESS))"},{"line_number":113,"context_line":"        self.assertTrue(instances_page.are_instances_deleted(instance_list))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    @pytest.mark.skip"},{"line_number":116,"context_line":"    def test_instances_pagination_and_filtration(self):"},{"line_number":117,"context_line":"        \"\"\"This test checks instance pagination and filtration"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_139a096d","line":115,"updated":"2020-03-26 14:34:05.000000000","message":"ditto","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"0e3215c2333189097c73a26d59e4b8a9f7af0ecf","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            instances_page.find_message_and_dismiss(messages.SUCCESS))"},{"line_number":113,"context_line":"        self.assertTrue(instances_page.are_instances_deleted(instance_list))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    @pytest.mark.skip"},{"line_number":116,"context_line":"    def test_instances_pagination_and_filtration(self):"},{"line_number":117,"context_line":"        \"\"\"This test checks instance pagination and filtration"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_69bc42dc","line":115,"in_reply_to":"df33271e_139a096d","updated":"2020-03-26 16:06:46.000000000","message":"Done","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":185,"context_line":"            instances_page.find_message_and_dismiss(messages.SUCCESS))"},{"line_number":186,"context_line":"        self.assertTrue(instances_page.are_instances_deleted(instance_list))"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    @pytest.mark.skip"},{"line_number":189,"context_line":"    def test_filter_instances(self):"},{"line_number":190,"context_line":"        \"\"\"This test checks filtering of instances by Instance Name"},{"line_number":191,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_b384fd0d","line":188,"updated":"2020-03-26 14:34:05.000000000","message":"ditto","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"0e3215c2333189097c73a26d59e4b8a9f7af0ecf","unresolved":false,"context_lines":[{"line_number":185,"context_line":"            instances_page.find_message_and_dismiss(messages.SUCCESS))"},{"line_number":186,"context_line":"        self.assertTrue(instances_page.are_instances_deleted(instance_list))"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    @pytest.mark.skip"},{"line_number":189,"context_line":"    def test_filter_instances(self):"},{"line_number":190,"context_line":"        \"\"\"This test checks filtering of instances by Instance Name"},{"line_number":191,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_49bfbecf","line":188,"in_reply_to":"df33271e_b384fd0d","updated":"2020-03-26 16:06:46.000000000","message":"Done","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":244,"context_line":"    def instances_page(self):"},{"line_number":245,"context_line":"        return self.home_pg.go_to_admin_compute_instancespage()"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    @pytest.mark.skip"},{"line_number":248,"context_line":"    def test_instances_pagination_and_filtration(self):"},{"line_number":249,"context_line":"        super(TestAdminInstances, self).\\"},{"line_number":250,"context_line":"            test_instances_pagination_and_filtration()"}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_93873910","line":247,"updated":"2020-03-26 14:34:05.000000000","message":"ditto","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"0e3215c2333189097c73a26d59e4b8a9f7af0ecf","unresolved":false,"context_lines":[{"line_number":244,"context_line":"    def instances_page(self):"},{"line_number":245,"context_line":"        return self.home_pg.go_to_admin_compute_instancespage()"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    @pytest.mark.skip"},{"line_number":248,"context_line":"    def test_instances_pagination_and_filtration(self):"},{"line_number":249,"context_line":"        super(TestAdminInstances, self).\\"},{"line_number":250,"context_line":"            test_instances_pagination_and_filtration()"}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_29ca3a6c","line":247,"in_reply_to":"df33271e_93873910","updated":"2020-03-26 16:06:46.000000000","message":"Done","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"}],"openstack_dashboard/test/integration_tests/tests/test_keypairs.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    \"\"\"Checks that the user is able to create/delete keypair.\"\"\""},{"line_number":23,"context_line":"    KEYPAIR_NAME \u003d helpers.gen_random_resource_name(\"keypair\")"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @pytest.mark.skip"},{"line_number":26,"context_line":"    def test_keypair(self):"},{"line_number":27,"context_line":"        keypair_page \u003d self.home_pg.\\"},{"line_number":28,"context_line":"            go_to_project_compute_keypairspage()"}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_3378ed28","line":25,"updated":"2020-03-26 14:34:05.000000000","message":"ditto","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"0e3215c2333189097c73a26d59e4b8a9f7af0ecf","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    \"\"\"Checks that the user is able to create/delete keypair.\"\"\""},{"line_number":23,"context_line":"    KEYPAIR_NAME \u003d helpers.gen_random_resource_name(\"keypair\")"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @pytest.mark.skip"},{"line_number":26,"context_line":"    def test_keypair(self):"},{"line_number":27,"context_line":"        keypair_page \u003d self.home_pg.\\"},{"line_number":28,"context_line":"            go_to_project_compute_keypairspage()"}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_69a1e2a9","line":25,"in_reply_to":"df33271e_3378ed28","updated":"2020-03-26 16:06:46.000000000","message":"Done","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"}],"openstack_dashboard/test/integration_tests/tests/test_projects.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        self.assertFalse(self.projects_page.is_project_present(PROJECT_NAME))"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"@pytest.mark.skip"},{"line_number":44,"context_line":"class TestModifyProject(helpers.AdminTestCase):"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_d39d4158","line":43,"updated":"2020-03-26 14:34:05.000000000","message":"why is this class skipped? The reason is required.","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        self.addCleanup(cleanup)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @pytest.mark.skip"},{"line_number":61,"context_line":"    def test_add_member(self):"},{"line_number":62,"context_line":"        admin_name \u003d self.CONFIG.identity.admin_username"},{"line_number":63,"context_line":"        regular_role_name \u003d self.CONFIG.identity.default_keystone_role"}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_13a84975","line":60,"updated":"2020-03-26 14:34:05.000000000","message":"why is this test skipped? The reason is required.","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"}],"openstack_dashboard/test/integration_tests/tests/test_router.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.assertTrue("},{"line_number":87,"context_line":"            networks_page.find_message_and_dismiss(messages.SUCCESS))"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @pytest.mark.skip"},{"line_number":90,"context_line":"    def test_router_add_delete_interface(self):"},{"line_number":91,"context_line":"        \"\"\"Tests the router interface creation and deletion functionalities:"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_73b8b5c7","line":89,"updated":"2020-03-26 14:34:05.000000000","message":"why is this test skipped? The reason is required.","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"}],"openstack_dashboard/test/integration_tests/tests/test_users.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    USER_NAME \u003d helpers.gen_random_resource_name(\"user\")"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    @pytest.mark.skip"},{"line_number":23,"context_line":"    def test_create_delete_user(self):"},{"line_number":24,"context_line":"        users_page \u003d self.home_pg.go_to_identity_userspage()"},{"line_number":25,"context_line":"        password \u003d self.TEST_PASSWORD"}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_b3b23de5","line":22,"updated":"2020-03-26 14:34:05.000000000","message":"why is this test skipped?\nThe reason is required.","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"}],"openstack_dashboard/test/test_plugins/test_panel.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def test_add_panel(self):"},{"line_number":51,"context_line":"        # NOTE(e0ne): the code below is commented until bug #1866666 is fixed."},{"line_number":52,"context_line":"        # We can\u0027t just kip this test due to the mentioned bug."},{"line_number":53,"context_line":"        # dashboard \u003d horizon.get_dashboard(\"admin\")"},{"line_number":54,"context_line":"        # panel_group \u003d dashboard.get_panel_group(\u0027admin\u0027)"},{"line_number":55,"context_line":"        # Check that the panel is in its configured dashboard."}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_731435a1","line":52,"range":{"start_line":52,"start_character":13,"end_line":52,"end_character":27},"updated":"2020-03-26 14:34:05.000000000","message":"kip -\u003e skip?\n\n\"Can\u0027t skip\" means \"can run\", so the comment looks incorrect.","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"}],"openstack_dashboard/test/test_plugins/test_panel_group.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    def test_add_panel(self):"},{"line_number":61,"context_line":"        # Check that the panel is in its configured dashboard and panel group."},{"line_number":62,"context_line":"        dashboard \u003d horizon.get_dashboard(\"admin\")"},{"line_number":63,"context_line":"        panel_group \u003d dashboard.get_panel_group(PANEL_GROUP_SLUG)"},{"line_number":64,"context_line":"        # NOTE(e0ne): the code below is commented until bug #1866666 is fixed."},{"line_number":65,"context_line":"        # We can\u0027t just kip this test due to the mentioned bug."},{"line_number":66,"context_line":"        # self.assertIn(plugin_panel.PluginPanel,"}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_3322ad01","line":63,"updated":"2020-03-26 14:34:05.000000000","message":"If no assertion is applied, is there any difference from skipping the test?","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        # Check that the panel is in its configured dashboard and panel group."},{"line_number":62,"context_line":"        dashboard \u003d horizon.get_dashboard(\"admin\")"},{"line_number":63,"context_line":"        panel_group \u003d dashboard.get_panel_group(PANEL_GROUP_SLUG)"},{"line_number":64,"context_line":"        # NOTE(e0ne): the code below is commented until bug #1866666 is fixed."},{"line_number":65,"context_line":"        # We can\u0027t just kip this test due to the mentioned bug."},{"line_number":66,"context_line":"        # self.assertIn(plugin_panel.PluginPanel,"},{"line_number":67,"context_line":"        #               [p.__class__ for p in dashboard.get_panels()])"}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_f327a511","line":64,"updated":"2020-03-26 14:34:05.000000000","message":"same comment as the previous file in the review","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"}],"test-requirements.txt":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e419e8bb75922b20d343d70e0b19bcc82f009d06","unresolved":false,"context_lines":[{"line_number":24,"context_line":"xvfbwrapper\u003e\u003d0.1.3 #license: MIT"},{"line_number":25,"context_line":"pytest\u003e\u003d5.3.5 # MIT"},{"line_number":26,"context_line":"pytest-django\u003e\u003d3.8.0 # BSD (3 clause)"},{"line_number":27,"context_line":"pytest-html\u003e\u003d2.0.1 #MPL-2.0"}],"source_content_type":"text/plain","patch_set":19,"id":"df33271e_b3835dcc","line":27,"updated":"2020-03-26 14:34:05.000000000","message":"Isn\u0027t it better to move L.25-27 to around L.18-19?\nAt least the comment at L.23 does not make sense to pytest modules.","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"},{"author":{"_account_id":28032,"name":"Oleksiy Petrenko","email":"opetrenko@mirantis.com","username":"enacero"},"change_message_id":"0e3215c2333189097c73a26d59e4b8a9f7af0ecf","unresolved":false,"context_lines":[{"line_number":24,"context_line":"xvfbwrapper\u003e\u003d0.1.3 #license: MIT"},{"line_number":25,"context_line":"pytest\u003e\u003d5.3.5 # MIT"},{"line_number":26,"context_line":"pytest-django\u003e\u003d3.8.0 # BSD (3 clause)"},{"line_number":27,"context_line":"pytest-html\u003e\u003d2.0.1 #MPL-2.0"}],"source_content_type":"text/plain","patch_set":19,"id":"df33271e_c9c62e4a","line":27,"in_reply_to":"df33271e_b3835dcc","updated":"2020-03-26 16:06:46.000000000","message":"Done","commit_id":"f59b896cc0820998f17c044ec03a9db7eae76018"}]}
