)]}'
{"neutron/db/securitygroups_db.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8174ba7aee2ae843e2b795acc3661abac0d8f0c6","unresolved":true,"context_lines":[{"line_number":906,"context_line":"        :returns: the default security group id for given tenant."},{"line_number":907,"context_line":"        \"\"\""},{"line_number":908,"context_line":"        if not extensions.is_extension_supported(self, \u0027security-group\u0027):"},{"line_number":909,"context_line":"            return"},{"line_number":910,"context_line":"        default_group_id \u003d self._get_default_sg_id(context, tenant_id)"},{"line_number":911,"context_line":"        if default_group_id:"},{"line_number":912,"context_line":"            return default_group_id"}],"source_content_type":"text/x-python","patch_set":2,"id":"fca2c3d6_81407dbe","line":909,"updated":"2021-01-27 12:45:13.000000000","message":"Actually this method is only called from the upper one, \"_ensure_default_security_group_handler\", if the extensions is disabled.\n\nWhat we should do (I don\u0027t think this is possible) is to disable the subscription to those events.","commit_id":"4b622b40445ca71e55b0ece502ae1a2062e9bcec"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"dbedcce8a438c40d30887a94798fb594cc03dfac","unresolved":true,"context_lines":[{"line_number":906,"context_line":"        :returns: the default security group id for given tenant."},{"line_number":907,"context_line":"        \"\"\""},{"line_number":908,"context_line":"        if not extensions.is_extension_supported(self, \u0027security-group\u0027):"},{"line_number":909,"context_line":"            return"},{"line_number":910,"context_line":"        default_group_id \u003d self._get_default_sg_id(context, tenant_id)"},{"line_number":911,"context_line":"        if default_group_id:"},{"line_number":912,"context_line":"            return default_group_id"}],"source_content_type":"text/x-python","patch_set":2,"id":"b88cbc8c_848682af","line":909,"in_reply_to":"fca2c3d6_81407dbe","updated":"2021-01-27 15:59:16.000000000","message":"Yes, but just in case if there would be any other call to this method, I wanted return quickly here 😊\nI hope it\u0027s fine for You.","commit_id":"4b622b40445ca71e55b0ece502ae1a2062e9bcec"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"28ed53855233624fcaa0946290f63f1d0f964c93","unresolved":true,"context_lines":[{"line_number":949,"context_line":"        )"},{"line_number":950,"context_line":""},{"line_number":951,"context_line":"        requested_groups \u003d set(port_sg)"},{"line_number":952,"context_line":"        print(\"Requested groups: %s\" % requested_groups)"},{"line_number":953,"context_line":"        print(\"Valid groups: %s\" % valid_groups)"},{"line_number":954,"context_line":"        port_sg_missing \u003d requested_groups - valid_groups"},{"line_number":955,"context_line":"        if port_sg_missing:"},{"line_number":956,"context_line":"            raise ext_sg.SecurityGroupNotFound(id\u003d\u0027, \u0027.join(port_sg_missing))"}],"source_content_type":"text/x-python","patch_set":2,"id":"61b0d40a_b1ee2c5b","line":953,"range":{"start_line":952,"start_character":0,"end_line":953,"end_character":48},"updated":"2021-01-27 12:36:16.000000000","message":"nit: some leftover prints :-)","commit_id":"4b622b40445ca71e55b0ece502ae1a2062e9bcec"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"dbedcce8a438c40d30887a94798fb594cc03dfac","unresolved":true,"context_lines":[{"line_number":949,"context_line":"        )"},{"line_number":950,"context_line":""},{"line_number":951,"context_line":"        requested_groups \u003d set(port_sg)"},{"line_number":952,"context_line":"        print(\"Requested groups: %s\" % requested_groups)"},{"line_number":953,"context_line":"        print(\"Valid groups: %s\" % valid_groups)"},{"line_number":954,"context_line":"        port_sg_missing \u003d requested_groups - valid_groups"},{"line_number":955,"context_line":"        if port_sg_missing:"},{"line_number":956,"context_line":"            raise ext_sg.SecurityGroupNotFound(id\u003d\u0027, \u0027.join(port_sg_missing))"}],"source_content_type":"text/x-python","patch_set":2,"id":"7d44a56e_a1ee63b7","line":953,"range":{"start_line":952,"start_character":0,"end_line":953,"end_character":48},"in_reply_to":"61b0d40a_b1ee2c5b","updated":"2021-01-27 15:59:16.000000000","message":"Thx :)","commit_id":"4b622b40445ca71e55b0ece502ae1a2062e9bcec"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"32596c350e4701052373b8bb968c832d028ade03","unresolved":true,"context_lines":[{"line_number":966,"context_line":"            default_sg \u003d self._ensure_default_security_group(context,"},{"line_number":967,"context_line":"                                                             port_project)"},{"line_number":968,"context_line":"            if default_sg:"},{"line_number":969,"context_line":"                port[ext_sg.SECURITYGROUPS] \u003d [default_sg]"},{"line_number":970,"context_line":""},{"line_number":971,"context_line":"    def _check_update_deletes_security_groups(self, port):"},{"line_number":972,"context_line":"        \"\"\"Return True if port has as a security group and it\u0027s value"}],"source_content_type":"text/x-python","patch_set":4,"id":"8b81f724_7ed811bb","line":969,"range":{"start_line":969,"start_character":16,"end_line":969,"end_character":43},"updated":"2021-02-03 11:47:07.000000000","message":"This should work, we expect \"SECURITYGROUPS\" is not always in the port dict.","commit_id":"4dc3d6289688cb445c3177e966743cfccaef27fe"}],"neutron/tests/unit/db/test_securitygroups_db.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"87a0f7eb1e334f2cfa89ffbf25835f001d5b09ca","unresolved":true,"context_lines":[{"line_number":563,"context_line":""},{"line_number":564,"context_line":"    def test__ensure_default_security_group(self):"},{"line_number":565,"context_line":"        with mock.patch.object("},{"line_number":566,"context_line":"                    self.mixin, \u0027_get_default_sg_id\u0027) as get_default_sg_id,\\"},{"line_number":567,"context_line":"                mock.patch.object("},{"line_number":568,"context_line":"                        self.mixin, \u0027create_security_group\u0027) as create_sg:"},{"line_number":569,"context_line":"            get_default_sg_id.return_value \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"99e4a622_d6e97210","line":566,"range":{"start_line":566,"start_character":20,"end_line":566,"end_character":76},"updated":"2021-01-28 05:27:36.000000000","message":"nit: unrelated","commit_id":"82eca8f7129c51e7e4f9086878f3ce19e7ce5dac"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"db5da74bc49421c6d5a083290a9cbd3dc697eb66","unresolved":false,"context_lines":[{"line_number":563,"context_line":""},{"line_number":564,"context_line":"    def test__ensure_default_security_group(self):"},{"line_number":565,"context_line":"        with mock.patch.object("},{"line_number":566,"context_line":"                    self.mixin, \u0027_get_default_sg_id\u0027) as get_default_sg_id,\\"},{"line_number":567,"context_line":"                mock.patch.object("},{"line_number":568,"context_line":"                        self.mixin, \u0027create_security_group\u0027) as create_sg:"},{"line_number":569,"context_line":"            get_default_sg_id.return_value \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"92022074_a50d9143","line":566,"range":{"start_line":566,"start_character":20,"end_line":566,"end_character":76},"in_reply_to":"99e4a622_d6e97210","updated":"2021-02-03 09:58:41.000000000","message":"Done","commit_id":"82eca8f7129c51e7e4f9086878f3ce19e7ce5dac"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"87a0f7eb1e334f2cfa89ffbf25835f001d5b09ca","unresolved":true,"context_lines":[{"line_number":579,"context_line":""},{"line_number":580,"context_line":"    def test__ensure_default_security_group_already_exists(self):"},{"line_number":581,"context_line":"        with mock.patch.object("},{"line_number":582,"context_line":"                    self.mixin, \u0027_get_default_sg_id\u0027) as get_default_sg_id,\\"},{"line_number":583,"context_line":"                mock.patch.object("},{"line_number":584,"context_line":"                        self.mixin, \u0027create_security_group\u0027) as create_sg:"},{"line_number":585,"context_line":"            get_default_sg_id.return_value \u003d \u0027default_sg_id\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3b0c1614_f5105aba","line":582,"range":{"start_line":582,"start_character":20,"end_line":582,"end_character":76},"updated":"2021-01-28 05:27:36.000000000","message":"ditto","commit_id":"82eca8f7129c51e7e4f9086878f3ce19e7ce5dac"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"db5da74bc49421c6d5a083290a9cbd3dc697eb66","unresolved":false,"context_lines":[{"line_number":579,"context_line":""},{"line_number":580,"context_line":"    def test__ensure_default_security_group_already_exists(self):"},{"line_number":581,"context_line":"        with mock.patch.object("},{"line_number":582,"context_line":"                    self.mixin, \u0027_get_default_sg_id\u0027) as get_default_sg_id,\\"},{"line_number":583,"context_line":"                mock.patch.object("},{"line_number":584,"context_line":"                        self.mixin, \u0027create_security_group\u0027) as create_sg:"},{"line_number":585,"context_line":"            get_default_sg_id.return_value \u003d \u0027default_sg_id\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"03bf7ee2_e0ef5f1a","line":582,"range":{"start_line":582,"start_character":20,"end_line":582,"end_character":76},"in_reply_to":"3b0c1614_f5105aba","updated":"2021-02-03 09:58:41.000000000","message":"Done","commit_id":"82eca8f7129c51e7e4f9086878f3ce19e7ce5dac"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"87a0f7eb1e334f2cfa89ffbf25835f001d5b09ca","unresolved":true,"context_lines":[{"line_number":591,"context_line":"        with mock.patch.object("},{"line_number":592,"context_line":"                self.mixin, \u0027_get_default_sg_id\u0027) as get_default_sg_id,\\"},{"line_number":593,"context_line":"                mock.patch.object("},{"line_number":594,"context_line":"                    self.mixin, \u0027create_security_group\u0027) as create_sg:"},{"line_number":595,"context_line":"            get_default_sg_id.side_effect \u003d [None, \u0027default_sg_id\u0027]"},{"line_number":596,"context_line":"            create_sg.side_effect \u003d obj_exc.NeutronDbObjectDuplicateEntry("},{"line_number":597,"context_line":"                mock.Mock(), mock.Mock())"}],"source_content_type":"text/x-python","patch_set":3,"id":"93750b50_d36184ca","line":594,"range":{"start_line":594,"start_character":20,"end_line":594,"end_character":70},"updated":"2021-01-28 05:27:36.000000000","message":"ditto","commit_id":"82eca8f7129c51e7e4f9086878f3ce19e7ce5dac"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"db5da74bc49421c6d5a083290a9cbd3dc697eb66","unresolved":false,"context_lines":[{"line_number":591,"context_line":"        with mock.patch.object("},{"line_number":592,"context_line":"                self.mixin, \u0027_get_default_sg_id\u0027) as get_default_sg_id,\\"},{"line_number":593,"context_line":"                mock.patch.object("},{"line_number":594,"context_line":"                    self.mixin, \u0027create_security_group\u0027) as create_sg:"},{"line_number":595,"context_line":"            get_default_sg_id.side_effect \u003d [None, \u0027default_sg_id\u0027]"},{"line_number":596,"context_line":"            create_sg.side_effect \u003d obj_exc.NeutronDbObjectDuplicateEntry("},{"line_number":597,"context_line":"                mock.Mock(), mock.Mock())"}],"source_content_type":"text/x-python","patch_set":3,"id":"ab2cd5e2_4223222d","line":594,"range":{"start_line":594,"start_character":20,"end_line":594,"end_character":70},"in_reply_to":"93750b50_d36184ca","updated":"2021-02-03 09:58:41.000000000","message":"Done","commit_id":"82eca8f7129c51e7e4f9086878f3ce19e7ce5dac"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"87a0f7eb1e334f2cfa89ffbf25835f001d5b09ca","unresolved":true,"context_lines":[{"line_number":608,"context_line":"                mock.call(self.ctx, \u0027tenant_1\u0027)])"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":"    def test__ensure_default_security_group_when_disabled(self):"},{"line_number":611,"context_line":"        with mock.patch("},{"line_number":612,"context_line":"                \u0027neutron_lib.api.extensions.is_extension_supported\u0027,"},{"line_number":613,"context_line":"                return_value\u003dFalse),\\"},{"line_number":614,"context_line":"                mock.patch.object("},{"line_number":615,"context_line":"                    self.mixin, \u0027_get_default_sg_id\u0027) as get_default_sg_id,\\"},{"line_number":616,"context_line":"                mock.patch.object("}],"source_content_type":"text/x-python","patch_set":3,"id":"ac327c45_28746fc6","line":613,"range":{"start_line":611,"start_character":8,"end_line":613,"end_character":37},"updated":"2021-01-28 05:27:36.000000000","message":"already mocked in setup","commit_id":"82eca8f7129c51e7e4f9086878f3ce19e7ce5dac"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"db5da74bc49421c6d5a083290a9cbd3dc697eb66","unresolved":false,"context_lines":[{"line_number":608,"context_line":"                mock.call(self.ctx, \u0027tenant_1\u0027)])"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":"    def test__ensure_default_security_group_when_disabled(self):"},{"line_number":611,"context_line":"        with mock.patch("},{"line_number":612,"context_line":"                \u0027neutron_lib.api.extensions.is_extension_supported\u0027,"},{"line_number":613,"context_line":"                return_value\u003dFalse),\\"},{"line_number":614,"context_line":"                mock.patch.object("},{"line_number":615,"context_line":"                    self.mixin, \u0027_get_default_sg_id\u0027) as get_default_sg_id,\\"},{"line_number":616,"context_line":"                mock.patch.object("}],"source_content_type":"text/x-python","patch_set":3,"id":"d65a715f_98ca22ee","line":613,"range":{"start_line":611,"start_character":8,"end_line":613,"end_character":37},"in_reply_to":"ac327c45_28746fc6","updated":"2021-02-03 09:58:41.000000000","message":"Done","commit_id":"82eca8f7129c51e7e4f9086878f3ce19e7ce5dac"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"87a0f7eb1e334f2cfa89ffbf25835f001d5b09ca","unresolved":true,"context_lines":[{"line_number":615,"context_line":"                    self.mixin, \u0027_get_default_sg_id\u0027) as get_default_sg_id,\\"},{"line_number":616,"context_line":"                mock.patch.object("},{"line_number":617,"context_line":"                        self.mixin, \u0027create_security_group\u0027) as create_sg:"},{"line_number":618,"context_line":"            get_default_sg_id.return_value \u003d None"},{"line_number":619,"context_line":"            self.mixin._ensure_default_security_group(self.ctx, \u0027tenant_1\u0027)"},{"line_number":620,"context_line":"            create_sg.assert_not_called()"},{"line_number":621,"context_line":"            get_default_sg_id.assert_not_called()"}],"source_content_type":"text/x-python","patch_set":3,"id":"4296d298_688c61c6","line":618,"range":{"start_line":618,"start_character":12,"end_line":618,"end_character":49},"updated":"2021-01-28 05:27:36.000000000","message":"why need if it\u0027s not called?","commit_id":"82eca8f7129c51e7e4f9086878f3ce19e7ce5dac"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"db5da74bc49421c6d5a083290a9cbd3dc697eb66","unresolved":false,"context_lines":[{"line_number":615,"context_line":"                    self.mixin, \u0027_get_default_sg_id\u0027) as get_default_sg_id,\\"},{"line_number":616,"context_line":"                mock.patch.object("},{"line_number":617,"context_line":"                        self.mixin, \u0027create_security_group\u0027) as create_sg:"},{"line_number":618,"context_line":"            get_default_sg_id.return_value \u003d None"},{"line_number":619,"context_line":"            self.mixin._ensure_default_security_group(self.ctx, \u0027tenant_1\u0027)"},{"line_number":620,"context_line":"            create_sg.assert_not_called()"},{"line_number":621,"context_line":"            get_default_sg_id.assert_not_called()"}],"source_content_type":"text/x-python","patch_set":3,"id":"80c17ddb_594c1568","line":618,"range":{"start_line":618,"start_character":12,"end_line":618,"end_character":49},"in_reply_to":"4296d298_688c61c6","updated":"2021-02-03 09:58:41.000000000","message":"we don\u0027t need it","commit_id":"82eca8f7129c51e7e4f9086878f3ce19e7ce5dac"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"32596c350e4701052373b8bb968c832d028ade03","unresolved":true,"context_lines":[{"line_number":80,"context_line":"        self.mock_quota_commit_res \u003d commit_res.start()"},{"line_number":81,"context_line":"        is_ext_supported \u003d mock.patch("},{"line_number":82,"context_line":"            \u0027neutron_lib.api.extensions.is_extension_supported\u0027)"},{"line_number":83,"context_line":"        self.is_ext_supported \u003d is_ext_supported.start()"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def test_create_security_group_conflict(self):"},{"line_number":86,"context_line":"        with mock.patch.object(registry, \"publish\") as mock_publish:"}],"source_content_type":"text/x-python","patch_set":4,"id":"8ee033e3_28afa0a7","line":83,"range":{"start_line":83,"start_character":8,"end_line":83,"end_character":56},"updated":"2021-02-03 11:47:07.000000000","message":"nit: why don\u0027t you mock this only in your test? In other words, why don\u0027t you start the mocking (this line) only in your new test?","commit_id":"4dc3d6289688cb445c3177e966743cfccaef27fe"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"400175c822593751734c9ad18f5a72faa1f70c0f","unresolved":true,"context_lines":[{"line_number":80,"context_line":"        self.mock_quota_commit_res \u003d commit_res.start()"},{"line_number":81,"context_line":"        is_ext_supported \u003d mock.patch("},{"line_number":82,"context_line":"            \u0027neutron_lib.api.extensions.is_extension_supported\u0027)"},{"line_number":83,"context_line":"        self.is_ext_supported \u003d is_ext_supported.start()"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def test_create_security_group_conflict(self):"},{"line_number":86,"context_line":"        with mock.patch.object(registry, \"publish\") as mock_publish:"}],"source_content_type":"text/x-python","patch_set":4,"id":"e1c0431c_e1c200b9","line":83,"range":{"start_line":83,"start_character":8,"end_line":83,"end_character":56},"in_reply_to":"8ee033e3_28afa0a7","updated":"2021-02-04 05:34:58.000000000","message":"is_extension_supported is always called, so it needs to be mocked here.\nThis function needs to return False in the new test and True for other tests.\n\nIn the current implementation, it returns mock.Mock() object for other tests and bool(mock.Mock()) is True, so the other tests work.\n\nIt is better to set return_value\u003dTrue by default and override it to False in the new test.","commit_id":"4dc3d6289688cb445c3177e966743cfccaef27fe"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"01f1e6f66e1bcd348652a2f431688f40368b6149","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        self.mock_quota_commit_res \u003d commit_res.start()"},{"line_number":81,"context_line":"        is_ext_supported \u003d mock.patch("},{"line_number":82,"context_line":"            \u0027neutron_lib.api.extensions.is_extension_supported\u0027)"},{"line_number":83,"context_line":"        self.is_ext_supported \u003d is_ext_supported.start()"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def test_create_security_group_conflict(self):"},{"line_number":86,"context_line":"        with mock.patch.object(registry, \"publish\") as mock_publish:"}],"source_content_type":"text/x-python","patch_set":4,"id":"e31ac3be_1b5e2899","line":83,"range":{"start_line":83,"start_character":8,"end_line":83,"end_character":56},"in_reply_to":"e1c0431c_e1c200b9","updated":"2021-02-05 15:08:12.000000000","message":"Done","commit_id":"4dc3d6289688cb445c3177e966743cfccaef27fe"}]}
