def setUp(self): self.migration_repository = MigrationRepository() self.migration_repository.clear() self.migration_repository.create_repository() self.database_manager = DatabaseManager( migration_repository=self.migration_repository, environment="DATABASE")
class CLITests(unittest.TestCase): def setUp(self): self.migration_repository = MigrationRepository() self.migration_repository.clear() self.runner = CliRunner() def tearDown(self): self.migration_repository.clear() def test_cli(self): result = self.runner.invoke(cli, ["--help"]) self.assertEqual(result.exit_code, 0) def test_cli_setup(self): result = self.runner.invoke(cli, ["setup"]) self.assertEqual(result.exit_code, 0) self.assertTrue(CLIStrings.DB_MIGRATION_REPOSITORY_CREATED == result.output.rstrip(), "output incorrect") def test_cli_setup_after_already_setup(self): result = self.runner.invoke(cli, ["setup"]) self.assertEqual(result.exit_code, 0) self.assertEqual(result.output.rstrip(), CLIStrings.DB_MIGRATION_REPOSITORY_CREATED, "output incorrect") result = self.runner.invoke(cli, ["setup"]) self.assertEqual(result.exit_code, 0) self.assertEqual(result.output.rstrip(), CLIStrings.DB_MIGRATION_REPOSITORY_ALREADY_CREATED, "output incorrect") def test_cli_clear_after_setup(self): result = self.runner.invoke(cli, ["setup"]) self.assertEqual(result.exit_code, 0) result = self.runner.invoke(cli, ["clear"]) self.assertEqual(result.exit_code, 0) self.assertEqual(result.output.rstrip(), CLIStrings.DB_MIGRATION_REPOSITORY_CLEARED, "output incorrect") def test_cli_clear_after_already_cleared(self): result = self.runner.invoke(cli, ["setup"]) self.assertEqual(result.exit_code, 0) result = self.runner.invoke(cli, ["clear"]) self.assertEqual(result.exit_code, 0) self.assertEqual(result.output.rstrip(), CLIStrings.DB_MIGRATION_REPOSITORY_CLEARED, "output incorrect") def test_cli_database_command_when_not_setup(self): result = self.runner.invoke(cli, ["db", "provision", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.assertEqual(result.output.rstrip(), CLIStrings.DB_MIGRATION_REPOSITORY_MUST_BE_SETUP) def test_cli_clear_when_not_setup(self): result = self.runner.invoke(cli, ["clear"]) self.assertEqual(result.exit_code, 0) self.assertEqual(result.output.rstrip(), CLIStrings.DB_MIGRATION_REPOSITORY_DOESNT_EXIST_AT_DIRECTORY) def test_cli_new_when_not_setup(self): result = self.runner.invoke(cli, ["new", "table", "test"]) self.assertEqual(result.exit_code, 0) self.assertEqual(result.output.rstrip(), CLIStrings.DB_MIGRATION_REPOSITORY_MUST_BE_SETUP)
def setUp(self): self.migration_repository = MigrationRepository() self.migration_repository.clear() self.migration_repository.create_repository() self.database_manager = DatabaseManager(migration_repository=self.migration_repository, environment="DATABASE") self.runner = CliRunner()
def repository(self): return MigrationRepository( directory=self.directory ) if self.directory else MigrationRepository()
class DatabaseManagerTests(unittest.TestCase): def setUp(self): self.migration_repository = MigrationRepository() self.migration_repository.clear() self.migration_repository.create_repository() self.database_manager = DatabaseManager(migration_repository=self.migration_repository, environment="DATABASE") def tearDown(self): if self.database_manager.is_database_provisioned(): self.database_manager.reset() self.database_manager.deprovision_database() self.migration_repository.clear() # Database Provisioning Tests def test_provision_database(self): self.database_manager.provision_database() self.assertTrue(self.database_manager.is_database_provisioned()) def test_provision_database_failure_after_already_provisioned(self): self.database_manager.provision_database() self.assertTrue(self.database_manager.is_database_provisioned()) self.assertFalse(self.database_manager.provision_database()) def test_deprovision_database(self): self.database_manager.provision_database() self.database_manager.deprovision_database() self.assertFalse(self.database_manager.is_database_provisioned()) def test_deprovision_database_when_not_provisioned(self): self.assertFalse(self.database_manager.is_database_provisioned()) self.database_manager.deprovision_database() self.assertFalse(self.database_manager.is_database_provisioned()) # Database Versioning Tests def test_current_database_migration_version(self): self.database_manager.provision_database() self.migration_repository.create_new_table_migration("users") self.database_manager.upgrade() self.assertEqual(self.database_manager.current_database_migration_version(), 0) def test_current_database_migration_version_when_no_migrations(self): self.database_manager.provision_database() self.assertIsNone(self.database_manager.current_database_migration_version()) # Database Lists Tests def test_list_migrations(self): self.migration_repository.create_new_table_migration("test") self.assertEqual(len(self.database_manager.list_migrations()), 1) def test_list_procedures(self): # TODO: Redo the create_new_procedure_migration to accept a content field # TODO: so that i can run the migration without an error. pass def test_list_procedures_on_unprovisioned_database(self): self.assertEqual(len(self.database_manager.list_procedures()), 0) def test_list_tables(self): self.database_manager.provision_database() self.assertEqual(len(self.database_manager.list_tables()), 1) def test_list_tables_on_unprovisioned_database(self): self.assertEqual(len(self.database_manager.list_tables()), 0) # Database Migration Tests def test_migrate_runs_multiple_migrations(self): self.database_manager.provision_database() self.migration_repository.create_new_table_migration("test_1") self.migration_repository.create_new_table_migration("test_2") self.assertEqual(self.migration_repository.current_migration_count(), 2) self.assertEqual(len(self.database_manager.list_tables()), 1) self.database_manager.migrate() self.assertEqual(len(self.database_manager.list_tables()), 3) def test_migrate_runs_on_new_migrations(self): self.database_manager.provision_database() self.migration_repository.create_new_table_migration("test_1") self.database_manager.upgrade() self.assertEqual(len(self.database_manager.list_tables()), 2) self.migration_repository.create_new_table_migration("test_2") self.database_manager.migrate() self.assertEqual(len(self.database_manager.list_tables()), 3) def test_upgrade_runs_only_one_migration(self): self.database_manager.provision_database() self.migration_repository.create_new_table_migration("test_1") self.migration_repository.create_new_table_migration("test_2") self.assertEqual(self.migration_repository.current_migration_count(), 2) self.assertEqual(len(self.database_manager.list_tables()), 1) self.database_manager.upgrade() self.assertEqual(len(self.database_manager.list_tables()), 2) def test_upgrade_runs_only_the_next_migration(self): self.database_manager.provision_database() self.migration_repository.create_new_table_migration("test_1") self.migration_repository.create_new_table_migration("test_2") self.assertEqual(self.migration_repository.current_migration_count(), 2) self.assertEqual(len(self.database_manager.list_tables()), 1) self.database_manager.upgrade() self.assertEqual(len(self.database_manager.list_tables()), 2) self.database_manager.upgrade() self.assertEqual(len(self.database_manager.list_tables()), 3) # Database Reset Tests def test_reset_runs_multiple_migrations(self): self.database_manager.provision_database() self.migration_repository.create_new_table_migration("test_1") self.migration_repository.create_new_table_migration("test_2") self.assertEqual(self.migration_repository.current_migration_count(), 2) self.assertEqual(len(self.database_manager.list_tables()), 1) self.database_manager.migrate() self.assertEqual(len(self.database_manager.list_tables()), 3) self.database_manager.reset() self.assertEqual(len(self.database_manager.list_tables()), 1) def test_reset_runs_on_remaining_migrations(self): self.database_manager.provision_database() self.migration_repository.create_new_table_migration("test_1") self.migration_repository.create_new_table_migration("test_2") self.assertEqual(self.migration_repository.current_migration_count(), 2) self.assertEqual(len(self.database_manager.list_tables()), 1) self.database_manager.migrate() self.assertEqual(len(self.database_manager.list_tables()), 3) self.database_manager.downgrade() self.assertEqual(len(self.database_manager.list_tables()), 2) self.database_manager.reset() self.assertEqual(len(self.database_manager.list_tables()), 1) def test_downgrade_runs_only_one_migration(self): self.database_manager.provision_database() self.migration_repository.create_new_table_migration("test_1") self.migration_repository.create_new_table_migration("test_2") self.assertEqual(self.migration_repository.current_migration_count(), 2) self.assertEqual(len(self.database_manager.list_tables()), 1) self.database_manager.migrate() self.assertEqual(len(self.database_manager.list_tables()), 3) self.database_manager.downgrade() self.assertEqual(len(self.database_manager.list_tables()), 2) def test_downgrade_runs_only_when_there_is_a_current_version(self): self.database_manager.provision_database() self.assertFalse(self.database_manager.downgrade())
def setUp(self): self.migration_repository = MigrationRepository()
def test_path_for_directory_at_root_directory_with_custom_directory(self): custom_migration_repository = MigrationRepository(directory="custom") assert(custom_migration_repository.path_for_directory_at_root_directory("foo") == "custom/foo")
class MigrationRepositoryTests(unittest.TestCase): def setUp(self): self.migration_repository = MigrationRepository() def tearDown(self): self.migration_repository.clear() def test_migration_repository_create(self): self.migration_repository.create_repository() assert(self.migration_repository.is_repository_setup() == True) def test_migration_repository_create_fail(self): self.migration_repository.create_repository() assert(self.migration_repository.create_repository() == False) def test_migration_repository_clear_after_already_cleared(self): assert(self.migration_repository.clear() == False) def test_migration_repository_is_setup(self): assert(self.migration_repository.is_repository_setup() == False) self.migration_repository.create_repository() assert(self.migration_repository.is_repository_setup() == True) def test_table_creation_migration(self): self.migration_repository.create_repository() self.migration_repository.create_new_table_migration("test") assert(self.migration_repository.current_migration_count() == 1) assert(self.migration_repository.current_migrations_list() == ["V00__create_table_test.sql"]) def test_table_alteration_migration(self): self.migration_repository.create_repository() self.migration_repository.create_new_table_alteration_migration("test") assert(self.migration_repository.current_migration_count() == 1) assert(self.migration_repository.current_migrations_list() == ["V00__alter_table_test.sql"]) def test_procedure_creation_migration(self): self.migration_repository.create_repository() self.migration_repository.create_new_procedure_migration("test") assert(self.migration_repository.current_migration_count() == 1) assert(self.migration_repository.current_migrations_list() == ["V00__create_sp_test.sql"]) def test_migration_count(self): self.migration_repository.create_repository() self.migration_repository.create_new_table_migration("test") assert(self.migration_repository.current_migration_count() == 1) assert(self.migration_repository.current_downgrade_count() == 1) def test_migration_list(self): self.migration_repository.create_repository() self.migration_repository.create_new_table_migration("test") assert(self.migration_repository.current_migrations_list() == ["V00__create_table_test.sql"]) def test_create_migration_double_digit_indexes(self): self.migration_repository.create_repository() for i in range(0, 11): self.migration_repository.create_new_table_migration("test_{0}".format(i)) assert(find_migration_index("V10__create_table_test_1.sql") == "10") def test_path_for_directory_at_root_directory_with_custom_directory(self): custom_migration_repository = MigrationRepository(directory="custom") assert(custom_migration_repository.path_for_directory_at_root_directory("foo") == "custom/foo") def test_database_config_when_environment_is_none(self): assert(self.migration_repository.database_config() is None) def test_database_config_with_invalid_environment(self): self.migration_repository.create_repository() self.failUnlessRaises(InvalidEnvironmentError, self.migration_repository.database_config, environment="INVALID") def test_database_config_with_invalid_database_fields(self): self.migration_repository.create_repository() self.failUnlessRaises(InvalidDatabaseFieldError, self.migration_repository.database_config, environment="DATABASE", database_fields=["invalid"])
def test_path_for_directory_at_root_directory_with_custom_directory(self): custom_migration_repository = MigrationRepository(directory="custom") assert (custom_migration_repository. path_for_directory_at_root_directory("foo") == "custom/foo")
class MigrationRepositoryTests(unittest.TestCase): def setUp(self): self.migration_repository = MigrationRepository() def tearDown(self): self.migration_repository.clear() def test_migration_repository_create(self): self.migration_repository.create_repository() assert (self.migration_repository.is_repository_setup() == True) def test_migration_repository_create_fail(self): self.migration_repository.create_repository() assert (self.migration_repository.create_repository() == False) def test_migration_repository_clear_after_already_cleared(self): assert (self.migration_repository.clear() == False) def test_migration_repository_is_setup(self): assert (self.migration_repository.is_repository_setup() == False) self.migration_repository.create_repository() assert (self.migration_repository.is_repository_setup() == True) def test_table_creation_migration(self): self.migration_repository.create_repository() self.migration_repository.create_new_table_migration("test") assert (self.migration_repository.current_migration_count() == 1) assert (self.migration_repository.current_migrations_list() == [ "V00__create_table_test.sql" ]) def test_table_alteration_migration(self): self.migration_repository.create_repository() self.migration_repository.create_new_table_alteration_migration("test") assert (self.migration_repository.current_migration_count() == 1) assert (self.migration_repository.current_migrations_list() == [ "V00__alter_table_test.sql" ]) def test_procedure_creation_migration(self): self.migration_repository.create_repository() self.migration_repository.create_new_procedure_migration("test") assert (self.migration_repository.current_migration_count() == 1) assert (self.migration_repository.current_migrations_list() == [ "V00__create_sp_test.sql" ]) def test_migration_count(self): self.migration_repository.create_repository() self.migration_repository.create_new_table_migration("test") assert (self.migration_repository.current_migration_count() == 1) assert (self.migration_repository.current_downgrade_count() == 1) def test_migration_list(self): self.migration_repository.create_repository() self.migration_repository.create_new_table_migration("test") assert (self.migration_repository.current_migrations_list() == [ "V00__create_table_test.sql" ]) def test_create_migration_double_digit_indexes(self): self.migration_repository.create_repository() for i in range(0, 11): self.migration_repository.create_new_table_migration( "test_{0}".format(i)) assert (find_migration_index("V10__create_table_test_1.sql") == "10") def test_path_for_directory_at_root_directory_with_custom_directory(self): custom_migration_repository = MigrationRepository(directory="custom") assert (custom_migration_repository. path_for_directory_at_root_directory("foo") == "custom/foo") def test_database_config_when_environment_is_none(self): assert (self.migration_repository.database_config() is None) def test_database_config_with_invalid_environment(self): self.migration_repository.create_repository() self.failUnlessRaises(InvalidEnvironmentError, self.migration_repository.database_config, environment="INVALID") def test_database_config_with_invalid_database_fields(self): self.migration_repository.create_repository() self.failUnlessRaises(InvalidDatabaseFieldError, self.migration_repository.database_config, environment="DATABASE", database_fields=["invalid"])
class DatabaseManagerTests(unittest.TestCase): def setUp(self): self.migration_repository = MigrationRepository() self.migration_repository.clear() self.migration_repository.create_repository() self.database_manager = DatabaseManager( migration_repository=self.migration_repository, environment="DATABASE") def tearDown(self): if self.database_manager.is_database_provisioned(): self.database_manager.reset() self.database_manager.deprovision_database() self.migration_repository.clear() # Database Provisioning Tests def test_provision_database(self): self.database_manager.provision_database() self.assertTrue(self.database_manager.is_database_provisioned()) def test_provision_database_failure_after_already_provisioned(self): self.database_manager.provision_database() self.assertTrue(self.database_manager.is_database_provisioned()) self.assertFalse(self.database_manager.provision_database()) def test_deprovision_database(self): self.database_manager.provision_database() self.database_manager.deprovision_database() self.assertFalse(self.database_manager.is_database_provisioned()) def test_deprovision_database_when_not_provisioned(self): self.assertFalse(self.database_manager.is_database_provisioned()) self.database_manager.deprovision_database() self.assertFalse(self.database_manager.is_database_provisioned()) # Database Versioning Tests def test_current_database_migration_version(self): self.database_manager.provision_database() self.migration_repository.create_new_table_migration("users") self.database_manager.upgrade() self.assertEqual( self.database_manager.current_database_migration_version(), 0) def test_current_database_migration_version_when_no_migrations(self): self.database_manager.provision_database() self.assertIsNone( self.database_manager.current_database_migration_version()) # Database Lists Tests def test_list_migrations(self): self.migration_repository.create_new_table_migration("test") self.assertEqual(len(self.database_manager.list_migrations()), 1) def test_list_procedures(self): # TODO: Redo the create_new_procedure_migration to accept a content field # TODO: so that i can run the migration without an error. pass def test_list_procedures_on_unprovisioned_database(self): self.assertEqual(len(self.database_manager.list_procedures()), 0) def test_list_tables(self): self.database_manager.provision_database() self.assertEqual(len(self.database_manager.list_tables()), 1) def test_list_tables_on_unprovisioned_database(self): self.assertEqual(len(self.database_manager.list_tables()), 0) # Database Migration Tests def test_migrate_runs_multiple_migrations(self): self.database_manager.provision_database() self.migration_repository.create_new_table_migration("test_1") self.migration_repository.create_new_table_migration("test_2") self.assertEqual(self.migration_repository.current_migration_count(), 2) self.assertEqual(len(self.database_manager.list_tables()), 1) self.database_manager.migrate() self.assertEqual(len(self.database_manager.list_tables()), 3) def test_migrate_runs_on_new_migrations(self): self.database_manager.provision_database() self.migration_repository.create_new_table_migration("test_1") self.database_manager.upgrade() self.assertEqual(len(self.database_manager.list_tables()), 2) self.migration_repository.create_new_table_migration("test_2") self.database_manager.migrate() self.assertEqual(len(self.database_manager.list_tables()), 3) def test_upgrade_runs_only_one_migration(self): self.database_manager.provision_database() self.migration_repository.create_new_table_migration("test_1") self.migration_repository.create_new_table_migration("test_2") self.assertEqual(self.migration_repository.current_migration_count(), 2) self.assertEqual(len(self.database_manager.list_tables()), 1) self.database_manager.upgrade() self.assertEqual(len(self.database_manager.list_tables()), 2) def test_upgrade_runs_only_the_next_migration(self): self.database_manager.provision_database() self.migration_repository.create_new_table_migration("test_1") self.migration_repository.create_new_table_migration("test_2") self.assertEqual(self.migration_repository.current_migration_count(), 2) self.assertEqual(len(self.database_manager.list_tables()), 1) self.database_manager.upgrade() self.assertEqual(len(self.database_manager.list_tables()), 2) self.database_manager.upgrade() self.assertEqual(len(self.database_manager.list_tables()), 3) # Database Reset Tests def test_reset_runs_multiple_migrations(self): self.database_manager.provision_database() self.migration_repository.create_new_table_migration("test_1") self.migration_repository.create_new_table_migration("test_2") self.assertEqual(self.migration_repository.current_migration_count(), 2) self.assertEqual(len(self.database_manager.list_tables()), 1) self.database_manager.migrate() self.assertEqual(len(self.database_manager.list_tables()), 3) self.database_manager.reset() self.assertEqual(len(self.database_manager.list_tables()), 1) def test_reset_runs_on_remaining_migrations(self): self.database_manager.provision_database() self.migration_repository.create_new_table_migration("test_1") self.migration_repository.create_new_table_migration("test_2") self.assertEqual(self.migration_repository.current_migration_count(), 2) self.assertEqual(len(self.database_manager.list_tables()), 1) self.database_manager.migrate() self.assertEqual(len(self.database_manager.list_tables()), 3) self.database_manager.downgrade() self.assertEqual(len(self.database_manager.list_tables()), 2) self.database_manager.reset() self.assertEqual(len(self.database_manager.list_tables()), 1) def test_downgrade_runs_only_one_migration(self): self.database_manager.provision_database() self.migration_repository.create_new_table_migration("test_1") self.migration_repository.create_new_table_migration("test_2") self.assertEqual(self.migration_repository.current_migration_count(), 2) self.assertEqual(len(self.database_manager.list_tables()), 1) self.database_manager.migrate() self.assertEqual(len(self.database_manager.list_tables()), 3) self.database_manager.downgrade() self.assertEqual(len(self.database_manager.list_tables()), 2) def test_downgrade_runs_only_when_there_is_a_current_version(self): self.database_manager.provision_database() self.assertFalse(self.database_manager.downgrade())
class CLIDatabaseTests(unittest.TestCase): def setUp(self): self.migration_repository = MigrationRepository() self.migration_repository.clear() self.migration_repository.create_repository() self.database_manager = DatabaseManager(migration_repository=self.migration_repository, environment="DATABASE") self.runner = CliRunner() def tearDown(self): if self.database_manager.is_database_provisioned(): self.database_manager.reset() self.database_manager.deprovision_database() self.migration_repository.clear() def test_cli_provision_database(self): result = self.runner.invoke(cli, ["db", "provision", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.assertEqual(result.output.rstrip(), CLIStrings.DB_DATABASE_PROVISIONED_SUCCESSFULLY) self.assertTrue(self.database_manager.is_database_provisioned()) def test_cli_deprovision_database(self): result = self.runner.invoke(cli, ["db", "provision", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.assertEqual(result.output.rstrip(), CLIStrings.DB_DATABASE_PROVISIONED_SUCCESSFULLY) self.assertTrue(self.database_manager.is_database_provisioned()) result = self.runner.invoke(cli, ["db", "deprovision", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.assertEqual(result.output.rstrip(), CLIStrings.DB_DATABASE_DEPROVISIONED_SUCCESSFULLY) self.assertFalse(self.database_manager.is_database_provisioned()) def test_cli_provision_when_already_provisioned(self): result = self.runner.invoke(cli, ["db", "provision", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.assertEqual(result.output.rstrip(), CLIStrings.DB_DATABASE_PROVISIONED_SUCCESSFULLY) self.assertTrue(self.database_manager.is_database_provisioned()) result = self.runner.invoke(cli, ["db", "provision", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.assertEqual(result.output.rstrip(), CLIStrings.DB_DATABASE_IS_ALREADY_PROVISIONED) self.assertTrue(self.database_manager.is_database_provisioned()) def test_cli_deprovision_when_not_provisioned(self): result = self.runner.invoke(cli, ["db", "deprovision", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.assertEqual(result.output.rstrip(), CLIStrings.DB_DATABASE_IS_NOT_PROVISIONED) self.assertFalse(self.database_manager.is_database_provisioned()) def test_cli_version_non_migrated(self): result = self.runner.invoke(cli, ["db", "provision", "DATABASE"]) self.assertEqual(result.exit_code, 0) result = self.runner.invoke(cli, ["db", "version", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.assertEqual(result.output.rstrip(), CLIStrings.DB_DATABASE_NOT_MIGRATED_YET) def test_cli_version_migrated(self): result = self.runner.invoke(cli, ["db", "provision", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.runner.invoke(cli, ["new", "table", "test"]) self.runner.invoke(cli, ["db", "migrate", "DATABASE"]) result = self.runner.invoke(cli, ["db", "version", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.assertEqual(result.output.rstrip(), "{0}: {1}".format(CLIStrings.DB_DATABASE_VERSION, 0)) def test_cli_list_tables(self): result = self.runner.invoke(cli, ["db", "provision", "DATABASE"]) self.assertEqual(result.exit_code, 0) result = self.runner.invoke(cli, ["db", "tables", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.assertEqual(result.output.rstrip(), "\nTABLES\n--------\nversion_migration\n--------") def test_cli_list_procedures(self): result = self.runner.invoke(cli, ["db", "procedures", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.assertEqual(result.output.rstrip(), "\nPROCEDURES\n--------\n--------") def test_cli_upgrade(self): result = self.runner.invoke(cli, ["db", "provision", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.runner.invoke(cli, ["new", "table", "test"]) self.runner.invoke(cli, ["db", "upgrade", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.assertEqual(self.database_manager.current_database_migration_version(), 0) def test_cli_downgrade(self): result = self.runner.invoke(cli, ["db", "provision", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.runner.invoke(cli, ["new", "table", "test"]) self.runner.invoke(cli, ["db", "upgrade", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.assertEqual(self.database_manager.current_database_migration_version(), 0) result = self.runner.invoke(cli, ["db", "downgrade", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.assertEqual(self.database_manager.current_database_migration_version(), None) def test_cli_migrate(self): result = self.runner.invoke(cli, ["db", "provision", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.runner.invoke(cli, ["new", "table", "test"]) self.runner.invoke(cli, ["db", "upgrade", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.assertEqual(self.database_manager.current_database_migration_version(), 0) def test_cli_reset(self): result = self.runner.invoke(cli, ["db", "provision", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.runner.invoke(cli, ["new", "table", "test"]) self.runner.invoke(cli, ["db", "migrate", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.assertEqual(self.database_manager.current_database_migration_version(), 0) result = self.runner.invoke(cli, ["db", "reset", "DATABASE"]) self.assertEqual(result.exit_code, 0) self.assertEqual(self.database_manager.current_database_migration_version(), None)
def setUp(self): self.migration_repository = MigrationRepository() self.migration_repository.clear() self.runner = CliRunner()