)]}'
{"cinder/tests/unit/test.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"cc6025a26600b861aba760f8406998394c2cf2ad","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        # assertRaisesRegex, but Python 2 does not have the new name. This"},{"line_number":287,"context_line":"        # can be removed once we stop supporting py2 or the new name is"},{"line_number":288,"context_line":"        # added."},{"line_number":289,"context_line":"        self.assertRaisesRegexp \u003d self.assertRaisesRegex"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"        # Ensure we have the default tpool size value and we don\u0027t carry"},{"line_number":292,"context_line":"        # threads from other test runs."}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_492e51ab","line":289,"range":{"start_line":289,"start_character":8,"end_line":289,"end_character":56},"updated":"2020-10-08 22:50:20.000000000","message":"I think the only place self.assertRaisesRegexp is used in the code is two places in the file:\nunit/volume/drivers/dell_emc/powerflex/test_revert_volume_to_snapshot.py\n\nYou can do a followup patch (or if you don\u0027t have time, file a bug) to address this TODO.","commit_id":"949b61f2c9a40102c3c14ffecf774558d4556373"}],"cinder/tests/unit/test_cmd.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b0d940332f27a0fb806362225ac6a611f7dfa56c","unresolved":false,"context_lines":[{"line_number":422,"context_line":""},{"line_number":423,"context_line":"    @mock.patch(\u0027cinder.context.get_admin_context\u0027)"},{"line_number":424,"context_line":"    def test_online_migrations(self, mock_get_context):"},{"line_number":425,"context_line":"        self.useFixture(fixtures.MonkeyPatch(\u0027sys.stdout\u0027, StringIO()))"},{"line_number":426,"context_line":"        ctxt \u003d mock_get_context.return_value"},{"line_number":427,"context_line":"        db_cmds \u003d self._fake_db_command()"},{"line_number":428,"context_line":"        command \u003d db_cmds()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_0db113e1","line":425,"updated":"2020-10-08 07:11:33.000000000","message":"pep8: F821 undefined name \u0027StringIO\u0027","commit_id":"118a60611207681978ff88b77d0b115613ad5e88"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b0d940332f27a0fb806362225ac6a611f7dfa56c","unresolved":false,"context_lines":[{"line_number":454,"context_line":""},{"line_number":455,"context_line":"    @mock.patch(\u0027cinder.context.get_admin_context\u0027)"},{"line_number":456,"context_line":"    def test_online_migrations_no_max_count(self, mock_get_context):"},{"line_number":457,"context_line":"        self.useFixture(fixtures.MonkeyPatch(\u0027sys.stdout\u0027, StringIO()))"},{"line_number":458,"context_line":"        fake_remaining \u003d [120]"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"        def fake_migration(context, count):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_6dc9af58","line":457,"updated":"2020-10-08 07:11:33.000000000","message":"pep8: F821 undefined name \u0027StringIO\u0027","commit_id":"118a60611207681978ff88b77d0b115613ad5e88"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b0d940332f27a0fb806362225ac6a611f7dfa56c","unresolved":false,"context_lines":[{"line_number":491,"context_line":""},{"line_number":492,"context_line":"    @mock.patch(\u0027cinder.context.get_admin_context\u0027)"},{"line_number":493,"context_line":"    def test_online_migrations_error(self, mock_get_context):"},{"line_number":494,"context_line":"        self.useFixture(fixtures.MonkeyPatch(\u0027sys.stdout\u0027, StringIO()))"},{"line_number":495,"context_line":"        good_remaining \u003d [50]"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"        def good_migration(context, count):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_4dc66b4b","line":494,"updated":"2020-10-08 07:11:33.000000000","message":"pep8: F821 undefined name \u0027StringIO\u0027","commit_id":"118a60611207681978ff88b77d0b115613ad5e88"}],"cinder/tests/unit/test_exception.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"9e809900ce8545a66f52a8d16e2ec619167806b1","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    def _wrap_log_exception(self):"},{"line_number":38,"context_line":"        exc_info \u003d sys.exc_info()"},{"line_number":39,"context_line":"        CinderExceptionReraiseFormatError.real_log_exception(self)"},{"line_number":40,"context_line":"        raise exc_info"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"# NOTE(melwitt) This needs to be done at import time in order to also catch"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_86d69825","line":40,"range":{"start_line":40,"start_character":14,"end_line":40,"end_character":22},"updated":"2020-10-08 19:54:56.000000000","message":"this is a tuple, so it can\u0027t be raised directly","commit_id":"949b61f2c9a40102c3c14ffecf774558d4556373"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"bc48c59452d2ac423105f0a174a869b3f360b19c","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    def _wrap_log_exception(self):"},{"line_number":38,"context_line":"        exc_info \u003d sys.exc_info()"},{"line_number":39,"context_line":"        CinderExceptionReraiseFormatError.real_log_exception(self)"},{"line_number":40,"context_line":"        raise exc_info"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"# NOTE(melwitt) This needs to be done at import time in order to also catch"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_699d1508","line":40,"range":{"start_line":40,"start_character":14,"end_line":40,"end_character":22},"in_reply_to":"9f560f44_86d69825","updated":"2020-10-08 22:39:39.000000000","message":"I was looking at this some more.  Since we\u0027re in Python 3, I think we can delete line 38 and just \u0027raise\u0027 (with no argument) at line 40.  (If you make that change, the test that was failing, cinder.tests.unit.volume.drivers.netapp.test_utils.NetAppDriverUtilsTestCase.test_get_valid_qos_policy_group_info_exception_path passes, but I haven\u0027t checked to see if anything else breaks).","commit_id":"949b61f2c9a40102c3c14ffecf774558d4556373"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"9e809900ce8545a66f52a8d16e2ec619167806b1","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            message \u003d \"default message\""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        exc \u003d FakeCinderException()"},{"line_number":55,"context_line":"        self.assertEqual(\u0027default message\u0027, exc)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def test_error_msg(self):"},{"line_number":58,"context_line":"        self.assertEqual(\u0027test\u0027, exception.CinderException(\u0027test\u0027))"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_e6ae74e2","line":55,"updated":"2020-10-08 19:54:56.000000000","message":"Same as line 65.","commit_id":"949b61f2c9a40102c3c14ffecf774558d4556373"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"9e809900ce8545a66f52a8d16e2ec619167806b1","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        self.assertEqual(\u0027default message\u0027, exc)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def test_error_msg(self):"},{"line_number":58,"context_line":"        self.assertEqual(\u0027test\u0027, exception.CinderException(\u0027test\u0027))"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def test_default_error_msg_with_kwargs(self):"},{"line_number":61,"context_line":"        class FakeCinderException(exception.CinderException):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_065d6815","line":58,"updated":"2020-10-08 19:54:56.000000000","message":"Same as line 65.","commit_id":"949b61f2c9a40102c3c14ffecf774558d4556373"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"9e809900ce8545a66f52a8d16e2ec619167806b1","unresolved":false,"context_lines":[{"line_number":62,"context_line":"            message \u003d \"default message: %(code)s\""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        exc \u003d FakeCinderException(code\u003dint(http_client.INTERNAL_SERVER_ERROR))"},{"line_number":65,"context_line":"        self.assertEqual(\u0027default message: 500\u0027, exc)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def test_error_msg_exception_with_kwargs(self):"},{"line_number":68,"context_line":"        # NOTE(dprince): disable format errors for this test"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_06444847","line":65,"range":{"start_line":65,"start_character":49,"end_line":65,"end_character":52},"updated":"2020-10-08 19:54:56.000000000","message":"this needs to be str(exc) because you\u0027re checking it against a string","commit_id":"949b61f2c9a40102c3c14ffecf774558d4556373"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"9e809900ce8545a66f52a8d16e2ec619167806b1","unresolved":false,"context_lines":[{"line_number":74,"context_line":"            message \u003d \"default message: %(misspelled_code)s\""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        exc \u003d FakeCinderException(code\u003dhttp_client.INTERNAL_SERVER_ERROR)"},{"line_number":77,"context_line":"        self.assertEqual(\u0027default message: %(misspelled_code)s\u0027, exc)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def test_default_error_code(self):"},{"line_number":80,"context_line":"        class FakeCinderException(exception.CinderException):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_a6a8fcd8","line":77,"updated":"2020-10-08 19:54:56.000000000","message":"Same as line 65.","commit_id":"949b61f2c9a40102c3c14ffecf774558d4556373"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"9e809900ce8545a66f52a8d16e2ec619167806b1","unresolved":false,"context_lines":[{"line_number":107,"context_line":"            message \u003d \u0027FakeCinderException: %(message)s\u0027"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        exc \u003d FakeCinderException(message\u003d\u0027message\u0027)"},{"line_number":110,"context_line":"        self.assertEqual(\u0027FakeCinderException: message\u0027, exc)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def test_message_and_kwarg_in_format_string(self):"},{"line_number":113,"context_line":"        class FakeCinderException(exception.CinderException):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_666ee4c8","line":110,"updated":"2020-10-08 19:54:56.000000000","message":"Same as line 65.","commit_id":"949b61f2c9a40102c3c14ffecf774558d4556373"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"9e809900ce8545a66f52a8d16e2ec619167806b1","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        exc \u003d FakeCinderException(message\u003d\u0027message\u0027,"},{"line_number":117,"context_line":"                                  code\u003dhttp_client.NOT_FOUND)"},{"line_number":118,"context_line":"        self.assertEqual(\u0027Error 404: message\u0027, exc)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def test_message_is_exception_in_format_string(self):"},{"line_number":121,"context_line":"        class FakeCinderException(exception.CinderException):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_c694108f","line":118,"updated":"2020-10-08 19:54:56.000000000","message":"Same as line 65.","commit_id":"949b61f2c9a40102c3c14ffecf774558d4556373"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"9e809900ce8545a66f52a8d16e2ec619167806b1","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        msg \u003d \u0027test message\u0027"},{"line_number":125,"context_line":"        exc1 \u003d Exception(msg)"},{"line_number":126,"context_line":"        exc2 \u003d FakeCinderException(message\u003dexc1)"},{"line_number":127,"context_line":"        self.assertEqual(\u0027Exception: test message\u0027, exc2)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"class CinderConvertedExceptionTestCase(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_869e98b4","line":127,"updated":"2020-10-08 19:54:56.000000000","message":"Same as line 65.","commit_id":"949b61f2c9a40102c3c14ffecf774558d4556373"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"43340251f4502d31ef9138da5fe1505fc28c69e9","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from http import client as http_client"},{"line_number":19,"context_line":"import sys"},{"line_number":20,"context_line":"from unittest import mock"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import fixtures"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_f26d8a67","line":19,"updated":"2020-10-09 02:50:20.000000000","message":"pep8: F401 \u0027sys\u0027 imported but unused","commit_id":"f481141d6879f4c75126315d310d5481cdcc785d"}],"cinder/tests/unit/test_image_utils.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"99fcc2cf508ddb1ba0d1fccd01230a8a1c981b7d","unresolved":false,"context_lines":[{"line_number":522,"context_line":"                          FakeImageService(), \u0027fake_id\u0027, \u0027fake_path\u0027)"},{"line_number":523,"context_line":"        mock_get.assert_not_called()"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"    @mock.patch(\u0027builtins.open\u0027)"},{"line_number":526,"context_line":"    @mock.patch(\u0027eventlet.tpool.execute\u0027)"},{"line_number":527,"context_line":"    @mock.patch(\u0027cursive.signature_utils.get_verifier\u0027)"},{"line_number":528,"context_line":"    @mock.patch(\u0027oslo_utils.fileutils.remove_path_on_error\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_afa39bfe","line":525,"range":{"start_line":525,"start_character":0,"end_line":525,"end_character":32},"updated":"2020-10-10 01:45:37.000000000","message":"This doesn\u0027t seem to break anything, but it\u0027s not the recommended way to mock \u0027open\u0027.  I was worried about mocking the \"real\" open vs. mocking the six.moves wrapper, but from what I can tell in the docs, it\u0027s more a matter of having a mock that will behave properly when used as a context manager.  See https://docs.python.org/3.8/library/unittest.mock.html#mock-open \nand here\u0027s a paste comparing mocking open as a regular mock and as the special mock_open:\nhttp://paste.openstack.org/show/798926/\n\nWe should mock this the correct way, I\u0027m just not sure whether we need to do it as part of this patch.","commit_id":"1d723da93de0271154dd8364d7d3062e5a6dc77e"}],"cinder/tests/unit/test_ssh_utils.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"111a5181026f9cf9f1eb13f37d74ea6f63b96890","unresolved":false,"context_lines":[{"line_number":9,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from unittest import mock"},{"line_number":14,"context_line":"import uuid"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_2f882b69","line":12,"updated":"2020-10-10 01:50:03.000000000","message":"I think technically, you need to import builtins here because you\u0027re using that namespace in the mock.patch decorators.  I guess it\u0027s not causing an error because something else is importing it, but I think it would be better to be explicit.","commit_id":"1d723da93de0271154dd8364d7d3062e5a6dc77e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"848de8fc6e52fb1f31f1ef9231668321078931d3","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import builtins"},{"line_number":14,"context_line":"from unittest import mock"},{"line_number":15,"context_line":"import uuid"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_4f2115fc","line":13,"updated":"2020-10-12 03:01:08.000000000","message":"pep8: F401 \u0027builtins\u0027 imported but unused","commit_id":"4a92bbf08a62e741d9c1800879a1ec07dff8c4d1"}]}
