def test_retrieve(self):
     testdata_filename = os.path.join(os.path.dirname(__file__), "migrations")
     manager = migration_manager.MigrationManager(testdata_filename)
     migrations = manager.migrations
     self.assertEqual(len(migrations), 3)
     self.assertEqual(migrations[2].prev_migration_id, migrations[1].migration_id)
     self.assertEqual(migrations[1].prev_migration_id, migrations[0].migration_id)
    def test_order_migrations_error_on_unclear_start_migration(self):
        first = migration.Migration('1', None)
        second = migration.Migration('3', '2')
        migrations = [first, second]

        manager = migration_manager.MigrationManager(self.TEST_MIGRATIONS_DIR)
        with self.assertRaisesRegex(error.SpannerError, 'no valid previous'):
            manager._order_migrations(migrations)
 def test_retrieve(self):
     manager = migration_manager.MigrationManager(self.TEST_MIGRATIONS_DIR)
     migrations = manager.migrations
     self.assertEqual(len(migrations), 3)
     self.assertEqual(migrations[2].prev_migration_id,
                      migrations[1].migration_id)
     self.assertEqual(migrations[1].prev_migration_id,
                      migrations[0].migration_id)
    def test_order_migrations_error_on_unclear_start_migration(self):
        first = migration.Migration("1", None, "1")
        second = migration.Migration("3", "2", "3")
        migrations = [first, second]

        manager = migration_manager.MigrationManager(self.TEST_MIGRATIONS_DIR)
        with self.assertRaisesRegex(error.SpannerError, "no valid previous"):
            manager._order_migrations(migrations)
 def __init__(
     self,
     connection: api.SpannerConnection,
     basedir: Optional[str] = None,
     pkg_name: Optional[str] = None,
 ):
     self._manager = migration_manager.MigrationManager(basedir, pkg_name)
     self._migration_status_map = None
     self._connection = connection
    def test_order_migrations_error_on_circular_dependency(self):
        first = migration.Migration('1', '3')
        second = migration.Migration('2', '1')
        third = migration.Migration('3', '2')
        migrations = [third, first, second]

        manager = migration_manager.MigrationManager(self.TEST_MIGRATIONS_DIR)
        with self.assertRaisesRegex(error.SpannerError, 'No valid migration'):
            manager._order_migrations(migrations)
    def test_order_migrations_error_on_unclear_successor(self):
        first = migration.Migration('1', None)
        second = migration.Migration('2', '1')
        third = migration.Migration('3', '1')
        migrations = [third, first, second]

        manager = migration_manager.MigrationManager(self.TEST_MIGRATIONS_DIR)
        with self.assertRaisesRegex(error.SpannerError, 'unclear successor'):
            manager._order_migrations(migrations)
    def test_order_migrations_with_no_none(self):
        first = migration.Migration('2', '1')
        second = migration.Migration('3', '2')
        third = migration.Migration('4', '3')
        migrations = [third, first, second]
        expected_order = [first, second, third]

        manager = migration_manager.MigrationManager(self.TEST_MIGRATIONS_DIR)
        self.assertEqual(manager._order_migrations(migrations), expected_order)
    def test_order_migrations_error_on_unclear_successor(self):
        first = migration.Migration("1", None, "1")
        second = migration.Migration("2", "1", "2")
        third = migration.Migration("3", "1", "3")
        migrations = [third, first, second]

        manager = migration_manager.MigrationManager(self.TEST_MIGRATIONS_DIR)
        with self.assertRaisesRegex(error.SpannerError, "unclear successor"):
            manager._order_migrations(migrations)
    def test_order_migrations_with_no_none(self):
        first = migration.Migration("2", "1", "2")
        second = migration.Migration("3", "2", "3")
        third = migration.Migration("4", "3", "4")
        migrations = [third, first, second]
        expected_order = [first, second, third]

        manager = migration_manager.MigrationManager(self.TEST_MIGRATIONS_DIR)
        self.assertEqual(manager._order_migrations(migrations), expected_order)
    def test_order_migrations_error_on_circular_dependency(self):
        first = migration.Migration("1", "3", "1")
        second = migration.Migration("2", "1", "2")
        third = migration.Migration("3", "2", "3")
        migrations = [third, first, second]

        manager = migration_manager.MigrationManager(self.TEST_MIGRATIONS_DIR)
        with self.assertRaisesRegex(error.SpannerError, "No valid migration"):
            manager._order_migrations(migrations)
 def test_generate(self):
     manager = migration_manager.MigrationManager(self.TEST_MIGRATIONS_DIR)
     path = manager.generate('test migration')
     try:
         migration_ = manager._migration_from_file(path)
         self.assertIsNotNone(migration_.migration_id)
         self.assertIsNotNone(migration_.prev_migration_id)
         self.assertIsInstance(migration_.upgrade(), update.NoUpdate)
         self.assertIsInstance(migration_.downgrade(), update.NoUpdate)
     finally:
         os.remove(path)
 def test_generate(self):
     testdata_filename = os.path.join(os.path.dirname(__file__), "migrations")
     shutil.rmtree(self.TEST_MIGRATIONS_DIR)
     shutil.copytree(testdata_filename, self.TEST_MIGRATIONS_DIR)
     os.chmod(self.TEST_MIGRATIONS_DIR, stat.S_IRWXO | stat.S_IRWXU)
     for f in os.listdir(self.TEST_MIGRATIONS_DIR):
         file_path = os.path.join(self.TEST_MIGRATIONS_DIR, f)
         if not os.path.isdir(file_path):
             os.chmod(
                 file_path, stat.S_IROTH | stat.S_IWOTH | stat.S_IRUSR | stat.S_IWUSR
             )
     manager = migration_manager.MigrationManager(self.TEST_MIGRATIONS_DIR)
     path = manager.generate("test migration")
     try:
         migration_ = manager._migration_from_file(path)
         self.assertIsNotNone(migration_.migration_id)
         self.assertIsNotNone(migration_.prev_migration_id)
         self.assertIsInstance(migration_.upgrade(), update.NoUpdate)
         self.assertIsInstance(migration_.downgrade(), update.NoUpdate)
     finally:
         shutil.rmtree(self.TEST_MIGRATIONS_DIR)
Example #14
0
def generate(args: Any) -> None:
    manager = migration_manager.MigrationManager(args.directory)
    manager.generate(args.name)