)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"8e9adb4c3820f2345fade21a94c5dd6b79d5c20d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"bdeb323b_2024029b","updated":"2022-02-12 10:13:44.000000000","message":"Good catch, i think tests for downgrade is better.","commit_id":"287bf8da7670d2207d15b5cf91d3acbbaa7dcb1c"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"faa5e4f926f9ffe5da9aefc9caff34bfb904a00c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"86bbaaea_dcaffc5b","updated":"2022-02-18 08:11:15.000000000","message":"LGTM","commit_id":"287bf8da7670d2207d15b5cf91d3acbbaa7dcb1c"}],"cyborg/tests/unit/db/test_migrations.py":[{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"203b0eabbad9e8d73611087bb31dbeb6d351a565","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.versions \u003d [mock.Mock(revision\u003d\u00272b2\u0027), mock.Mock(revision\u003d\u00271a1\u0027)]"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def test_migrate_up(self):"},{"line_number":93,"context_line":"        self.migration_api.version.return_value \u003d \u0027dsa123\u0027"},{"line_number":94,"context_line":"        self._migrate_up(self.engine, self.config, \u0027dsa123\u0027)"},{"line_number":95,"context_line":"        self.migration_api.upgrade.assert_called_with(\u0027dsa123\u0027,"},{"line_number":96,"context_line":"                                                      config\u003dself.config)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_025d387b","line":93,"range":{"start_line":93,"start_character":51,"end_line":93,"end_character":57},"updated":"2020-01-20 10:02:00.000000000","message":"why this is 6 bits, maybe it is better to align with actual file prefix format.","commit_id":"7a85a04050cf2d1135db52b66dc2dc68f5e9aa68"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"7fbb7013cec2ff612906031b66c8342822cd1648","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.versions \u003d [mock.Mock(revision\u003d\u00272b2\u0027), mock.Mock(revision\u003d\u00271a1\u0027)]"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def test_migrate_up(self):"},{"line_number":93,"context_line":"        self.migration_api.version.return_value \u003d \u0027dsa123\u0027"},{"line_number":94,"context_line":"        self._migrate_up(self.engine, self.config, \u0027dsa123\u0027)"},{"line_number":95,"context_line":"        self.migration_api.upgrade.assert_called_with(\u0027dsa123\u0027,"},{"line_number":96,"context_line":"                                                      config\u003dself.config)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_6288acc2","line":93,"range":{"start_line":93,"start_character":51,"end_line":93,"end_character":57},"in_reply_to":"3fa7e38b_025d387b","updated":"2020-01-20 10:08:25.000000000","message":"yes, it better to be consistent with the db file prefix.","commit_id":"7a85a04050cf2d1135db52b66dc2dc68f5e9aa68"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"186beab951f8f5917b275ec5dca64c4dcca56a09","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    def test_walk_versions(self):"},{"line_number":111,"context_line":"        self._walk_versions(self.engine, self.config)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _check_589ff20545b7(self, engine, data):"},{"line_number":114,"context_line":"        devices \u003d db_utils.get_table(engine, \u0027devices\u0027)"},{"line_number":115,"context_line":"        col_names \u003d [column.name for column in devices.c]"},{"line_number":116,"context_line":"        self.assertIn(\u0027type\u0027, col_names)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_933bad99","line":113,"updated":"2020-01-21 00:01:51.000000000","message":"Would there be a separate test case like this for every migration script?\n\nIt seems that the test case body is not specific to this migration script, which added a specific type of device?","commit_id":"7a85a04050cf2d1135db52b66dc2dc68f5e9aa68"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"1184a781d8e756fdca132d1997641b1944be159c","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    def test_walk_versions(self):"},{"line_number":111,"context_line":"        self._walk_versions(self.engine, self.config)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _check_589ff20545b7(self, engine, data):"},{"line_number":114,"context_line":"        devices \u003d db_utils.get_table(engine, \u0027devices\u0027)"},{"line_number":115,"context_line":"        col_names \u003d [column.name for column in devices.c]"},{"line_number":116,"context_line":"        self.assertIn(\u0027type\u0027, col_names)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1fa4df85_d71f5eb4","line":113,"in_reply_to":"3fa7e38b_933bad99","updated":"2020-03-10 14:35:22.000000000","message":"Sundar I would like to add a check for every script we have in https://opendev.org/openstack/cyborg/src/branch/master/cyborg/db/sqlalchemy/alembic/versions, that can ensure we can have a good managerment for db script, but this needs to be improved step by step.","commit_id":"7a85a04050cf2d1135db52b66dc2dc68f5e9aa68"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"37e9d63a1a1cf85738edde83100c9a258f905db6","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from alembic import script"},{"line_number":14,"context_line":"import fixtures"},{"line_number":15,"context_line":"import mock"},{"line_number":16,"context_line":"from oslo_db import exception as db_exc"},{"line_number":17,"context_line":"from oslo_db.sqlalchemy import enginefacade"},{"line_number":18,"context_line":"from oslo_db.sqlalchemy import test_fixtures"}],"source_content_type":"text/x-python","patch_set":8,"id":"fffc6b78_af84ceb2","line":15,"updated":"2020-11-19 12:02:10.000000000","message":"pep8: N366: You must explicitly import python\u0027s mock: ``from unittest import mock``","commit_id":"fbdfd1bad66c1b8c6c42d6d0f02f8896ac751185"}]}
