)]}'
{"keystone/common/sql/migration_helpers.py":[{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"6892e6e8a02b15500e9891b57fe845c1cc52b571","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"def print_db_version(extension\u003dNone, engine\u003dNone):"},{"line_number":242,"context_line":"    engine \u003d engine or sql.get_engine()"},{"line_number":243,"context_line":"    try:"},{"line_number":244,"context_line":"        db_version \u003d get_db_version(extension\u003dextension)"},{"line_number":245,"context_line":"        print(db_version)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_34c904ad","line":242,"updated":"2014-11-28 13:32:34.000000000","message":"this seems to be unused","commit_id":"d0beb907a616c02f04c7514d125e1255ee3e26b1"},{"author":{"_account_id":7536,"name":"Ilya Pekelny","email":"ipekelny@mirantis.com","username":"I159"},"change_message_id":"148bee4038678b759004231a41450b7fe3dbc2ac","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"def print_db_version(extension\u003dNone, engine\u003dNone):"},{"line_number":242,"context_line":"    engine \u003d engine or sql.get_engine()"},{"line_number":243,"context_line":"    try:"},{"line_number":244,"context_line":"        db_version \u003d get_db_version(extension\u003dextension)"},{"line_number":245,"context_line":"        print(db_version)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_8bfd323e","line":242,"in_reply_to":"5a890539_34c904ad","updated":"2014-11-28 16:35:26.000000000","message":"Done","commit_id":"d0beb907a616c02f04c7514d125e1255ee3e26b1"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"b3c1759a499ae4e1334b838549b248e2ad158acd","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        # when the migration was initially created. Bug #1334779 is a scenario"},{"line_number":176,"context_line":"        # where the deployer can get wedged, unable to upgrade or downgrade."},{"line_number":177,"context_line":"        # This is a workaround to \"fix\" that table if we\u0027re under MySQL."},{"line_number":178,"context_line":"        if engine.name \u003d\u003d \u0027mysql\u0027 and six.text_type(get_db_version()) \u003d\u003d \u002737\u0027:"},{"line_number":179,"context_line":"            _fix_migration_37(engine)"},{"line_number":180,"context_line":"            # Try the migration a second time now that we\u0027ve done the"},{"line_number":181,"context_line":"            # un-wedge work."}],"source_content_type":"text/x-python","patch_set":8,"id":"3a961159_c1e1cdff","line":178,"updated":"2014-12-09 15:36:21.000000000","message":"/me was really wandered by this\n\n u\u002737\u0027 \u003d\u003d \u002737\u0027\n True","commit_id":"ab64c5d1d192506243b0777cbc29e0167fa5e021"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"a8fa6381ad3c53a746ac5a7da078f3f14c5340e1","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        engine.execute(\u0027ALTER TABLE region CONVERT TO CHARACTER SET utf8\u0027)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"def _sync_common_repo(version, engine\u003dNone):"},{"line_number":167,"context_line":"    abs_path \u003d find_migrate_repo()"},{"line_number":168,"context_line":"    init_version \u003d get_init_version()"},{"line_number":169,"context_line":"    engine \u003d engine or sql.get_engine()"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa81d914_c6a9dae0","line":166,"updated":"2015-01-28 22:29:19.000000000","message":"Why is `engine` optional here?","commit_id":"34498291b5cd4406c50f76b45697c798294ae054"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"b414b94fc9f6c4e8106c6c09ae3ade93248a82fe","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        engine.execute(\u0027ALTER TABLE region CONVERT TO CHARACTER SET utf8\u0027)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"def _sync_common_repo(version, engine\u003dNone):"},{"line_number":167,"context_line":"    abs_path \u003d find_migrate_repo()"},{"line_number":168,"context_line":"    init_version \u003d get_init_version()"},{"line_number":169,"context_line":"    engine \u003d engine or sql.get_engine()"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa963961_499c7269","line":166,"in_reply_to":"fa81d914_c6a9dae0","updated":"2015-03-26 16:00:06.000000000","message":"Fixed","commit_id":"34498291b5cd4406c50f76b45697c798294ae054"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"a8fa6381ad3c53a746ac5a7da078f3f14c5340e1","unresolved":false,"context_lines":[{"line_number":187,"context_line":"            raise"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"def _sync_extension_repo(extension, version, engine\u003dNone):"},{"line_number":191,"context_line":"    try:"},{"line_number":192,"context_line":"        package_name \u003d \u0027.\u0027.join((contrib.__name__, extension))"},{"line_number":193,"context_line":"        package \u003d importutils.import_module(package_name)"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa81d914_66eaee10","line":190,"updated":"2015-01-28 22:29:19.000000000","message":"same here","commit_id":"34498291b5cd4406c50f76b45697c798294ae054"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"b414b94fc9f6c4e8106c6c09ae3ade93248a82fe","unresolved":false,"context_lines":[{"line_number":187,"context_line":"            raise"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"def _sync_extension_repo(extension, version, engine\u003dNone):"},{"line_number":191,"context_line":"    try:"},{"line_number":192,"context_line":"        package_name \u003d \u0027.\u0027.join((contrib.__name__, extension))"},{"line_number":193,"context_line":"        package \u003d importutils.import_module(package_name)"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa963961_89927a56","line":190,"in_reply_to":"fa81d914_66eaee10","updated":"2015-03-26 16:00:06.000000000","message":"Done","commit_id":"34498291b5cd4406c50f76b45697c798294ae054"}],"keystone/tests/unit/test_sql_upgrade.py":[{"author":{"_account_id":10795,"name":"Rajesh Tailor","email":"tailor.rajesh88@gmail.com","username":"rajeshtailor"},"change_message_id":"501fe1a2907ea7be0e5403c5811f18c2d947f2ff","unresolved":false,"context_lines":[{"line_number":729,"context_line":"        self.assertEqual(10, version)"},{"line_number":730,"context_line":""},{"line_number":731,"context_line":"    def test_extension_not_controlled(self):"},{"line_number":732,"context_line":"        \"\"\"When get the version before controlling, raises DbMigrationError.\"\"\""},{"line_number":733,"context_line":"        self.assertRaises(db_exception.DbMigrationError,"},{"line_number":734,"context_line":"                          migration_helpers.get_db_version,"},{"line_number":735,"context_line":"                          extension\u003d\u0027federation\u0027)"}],"source_content_type":"text/x-python","patch_set":17,"id":"3a50d1a3_8acbdaa3","line":732,"updated":"2015-08-03 13:19:38.000000000","message":"Not sure whether change is required here and other places in the module where migration_helpers.get_db_version is used.\n\nCould you please explain whether change is required or not ?","commit_id":"bc3f91a1abd62f23b146a36f6185a3e8d43e4752"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d8546cda32b9b354600e7218f752adaf07d196c2","unresolved":false,"context_lines":[{"line_number":729,"context_line":"        self.assertEqual(10, version)"},{"line_number":730,"context_line":""},{"line_number":731,"context_line":"    def test_extension_not_controlled(self):"},{"line_number":732,"context_line":"        \"\"\"When get the version before controlling, raises DbMigrationError.\"\"\""},{"line_number":733,"context_line":"        self.assertRaises(db_exception.DbMigrationError,"},{"line_number":734,"context_line":"                          migration_helpers.get_db_version,"},{"line_number":735,"context_line":"                          extension\u003d\u0027federation\u0027)"}],"source_content_type":"text/x-python","patch_set":17,"id":"ba8a016a_7c2b5795","line":732,"in_reply_to":"3a50d1a3_8acbdaa3","updated":"2015-11-20 16:58:27.000000000","message":"Yes, it isn\u0027t explained why only apparently random get_db_version calls got this argument.\n\nAlso, I was wondering if it would be a good idea to have a single engine instantiated at the test class setup and have this engine shared in get_db_version calls across the different test.\n\nHowever sharing objects across unit tests probably isn\u0027t a good idea, because the object could be modified in a test and then don\u0027t work properly in the next call.","commit_id":"bc3f91a1abd62f23b146a36f6185a3e8d43e4752"}]}
