Exemplo n.º 1
0
 def test_fallback(self, cfg_mock):
     cfg_mock.source = 'source://uri'
     cfg_mock.target = 'target://uri'
     cfg_mock.chunk_size = 10
     dbdatamigrator = psql2mysql.DbDataMigrator(None, None, None)
     self.assertEqual(dbdatamigrator.src_uri, 'source://uri')
     self.assertEqual(dbdatamigrator.target_uri, 'target://uri')
     self.assertEqual(dbdatamigrator.chunk_size, 10)
Exemplo n.º 2
0
 def test_purge_tables(self):
     chunk_size = 10
     dbdatamigrator = psql2mysql.DbDataMigrator(None, 'source', 'target',
                                                chunk_size)
     table = namedtuple('Table', ['name', 'columns'])
     foo = table('foo', [])
     dbdatamigrator._target_db = mock.MagicMock()
     dbdatamigrator.target_db.getSortedTables.return_value = [foo]
     dbdatamigrator.purgeTables()
     dbdatamigrator.target_db.clearTable.assert_called_once()
Exemplo n.º 3
0
 def test_migrate_no_tables(self):
     chunk_size = 10
     dbdatamigrator = psql2mysql.DbDataMigrator(None, 'source', 'target',
                                                chunk_size)
     dbdatamigrator._src_db = mock.MagicMock()
     dbdatamigrator._target_db = mock.MagicMock()
     dbdatamigrator.src_db.getSortedTables.return_value = []
     with self.assertRaises(psql2mysql.SourceDatabaseEmpty):
         dbdatamigrator.migrate()
     dbdatamigrator.src_db.getSortedTables.return_value = ['foo']
     dbdatamigrator.target_db.getTables.return_value = []
     with self.assertRaises(psql2mysql.TargetDatabaseEmpty):
         dbdatamigrator.migrate()
Exemplo n.º 4
0
 def test_migrate_target_missing(self):
     chunk_size = 10
     dbdatamigrator = psql2mysql.DbDataMigrator(None, 'source', 'target',
                                                chunk_size)
     table = namedtuple('Table', ['name', 'columns'])
     foo = table('foo', [])
     bar = table('bar', [])
     dbdatamigrator._src_db = mock.MagicMock()
     dbdatamigrator.src_db.getSortedTables.return_value = [bar, foo]
     dbdatamigrator._target_db = mock.MagicMock()
     dbdatamigrator.target_db.getTables.return_value = {'foo': foo}
     dbdatamigrator.target_db.getSortedTables.return_value = [foo]
     with self.assertRaisesRegexp(
             psql2mysql.Psql2MysqlRuntimeError,
             "^Table 'bar' does not exist in target database$"):
         dbdatamigrator.migrate()
Exemplo n.º 5
0
 def test_migrate(self):
     chunk_size = 10
     dbdatamigrator = psql2mysql.DbDataMigrator(None, 'source', 'target',
                                                chunk_size)
     table = namedtuple('Table', ['name', 'columns'])
     foo = table('foo', [])
     table_result = namedtuple('TableResult', ['returns_rows', 'rowcount'])
     dbdatamigrator._src_db = mock.MagicMock()
     dbdatamigrator.src_db.getSortedTables.return_value = [foo]
     dbdatamigrator.src_db.readTableRows.return_value = table_result(
         ['foo', 'bar'], 1)
     dbdatamigrator._target_db = mock.MagicMock()
     dbdatamigrator.target_db.getTables.return_value = {'foo': foo}
     dbdatamigrator.target_db.getSortedTables.return_value = [foo]
     dbdatamigrator.migrate()
     dbdatamigrator.src_db.readTableRows.assert_called_with(foo)
     dbdatamigrator.target_db.writeTableRows.assert_called_once()
Exemplo n.º 6
0
 def test_migrate_skipped_tables(self):
     chunk_size = 10
     dbdatamigrator = psql2mysql.DbDataMigrator(None, 'source', 'target',
                                                chunk_size)
     dbdatamigrator._src_db = mock.MagicMock()
     dbdatamigrator._target_db = mock.MagicMock()
     table = namedtuple('Table', ['name', 'columns'])
     alembic_migration = table('alembic_migration', [])
     migrate_version = table('migrate_version', [])
     dbdatamigrator.src_db.getSortedTables.return_value = [
         alembic_migration, migrate_version
     ]
     dbdatamigrator.target_db.getTables.return_value = {
         'alembic_migration': alembic_migration,
         'migrate_version': migrate_version
     }
     dbdatamigrator.migrate()
     dbdatamigrator.src_db.readTableRows.assert_not_called()
Exemplo n.º 7
0
    def test_setup(self, dbwrapper_mock):
        dbwrapper_mock.connect.return_value = None
        chunk_size = 10
        dbdatamigrator = psql2mysql.DbDataMigrator(None, 'source', 'target',
                                                   chunk_size)
        dbdatamigrator.src_db
        calls = (mock.call('source', chunk_size), mock.call().connect())
        dbwrapper_mock.assert_has_calls(calls)
        dbwrapper_mock.reset_mock()

        # Don't call reconnect on subsequent calls
        dbdatamigrator.src_db
        dbwrapper_mock.assert_not_called()
        dbwrapper_mock.call().connect().assert_not_called()
        dbwrapper_mock.reset_mock()

        dbdatamigrator.target_db
        calls = (mock.call('target', chunk_size), mock.call().connect())
        dbwrapper_mock.assert_has_calls(calls)