def test_determineUpgradeSequence(self): upgrader = UpgradeDatabaseSchemaStep(None) upgrader.schemaLocation = getModule(__name__).filePath.sibling("fake_schema1") files = upgrader.scanForUpgradeFiles("fake_dialect") upgrades = upgrader.determineUpgradeSequence(3, 4, files, "fake_dialect") self.assertEqual(upgrades, [upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_3_to_4.sql")], ) self.assertRaises(RuntimeError, upgrader.determineUpgradeSequence, 3, 5, files, "fake_dialect") upgrader.schemaLocation = getModule(__name__).filePath.sibling("fake_schema2") files = upgrader.scanForUpgradeFiles("fake_dialect") upgrades = upgrader.determineUpgradeSequence(3, 5, files, "fake_dialect") self.assertEqual(upgrades, [upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_3_to_5.sql")] ) upgrades = upgrader.determineUpgradeSequence(4, 5, files, "fake_dialect") self.assertEqual(upgrades, [upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_4_to_5.sql")] ) upgrader.schemaLocation = getModule(__name__).filePath.sibling("fake_schema3") files = upgrader.scanForUpgradeFiles("fake_dialect") upgrades = upgrader.determineUpgradeSequence(3, 5, files, "fake_dialect") self.assertEqual(upgrades, [ upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_3_to_4.sql"), upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_4_to_5.sql"), ] )
def test_determineUpgradeSequence(self): upgrader = UpgradeDatabaseSchemaStep(None) upgrader.schemaLocation = getModule(__name__).filePath.sibling( "fake_schema1") files = upgrader.scanForUpgradeFiles("fake_dialect") upgrades = upgrader.determineUpgradeSequence(3, 4, files, "fake_dialect") self.assertEqual( upgrades, [ upgrader.schemaLocation.child("upgrades").child( "fake_dialect").child("upgrade_from_3_to_4.sql") ], ) self.assertRaises(RuntimeError, upgrader.determineUpgradeSequence, 3, 5, files, "fake_dialect") upgrader.schemaLocation = getModule(__name__).filePath.sibling( "fake_schema2") files = upgrader.scanForUpgradeFiles("fake_dialect") upgrades = upgrader.determineUpgradeSequence(3, 5, files, "fake_dialect") self.assertEqual(upgrades, [ upgrader.schemaLocation.child("upgrades").child( "fake_dialect").child("upgrade_from_3_to_5.sql") ]) upgrades = upgrader.determineUpgradeSequence(4, 5, files, "fake_dialect") self.assertEqual(upgrades, [ upgrader.schemaLocation.child("upgrades").child( "fake_dialect").child("upgrade_from_4_to_5.sql") ]) upgrader.schemaLocation = getModule(__name__).filePath.sibling( "fake_schema3") files = upgrader.scanForUpgradeFiles("fake_dialect") upgrades = upgrader.determineUpgradeSequence(3, 5, files, "fake_dialect") self.assertEqual(upgrades, [ upgrader.schemaLocation.child("upgrades").child( "fake_dialect").child("upgrade_from_3_to_4.sql"), upgrader.schemaLocation.child("upgrades").child( "fake_dialect").child("upgrade_from_4_to_5.sql"), ])
def test_scanUpgradeFiles(self): upgrader = UpgradeDatabaseSchemaStep(None) upgrader.schemaLocation = getModule(__name__).filePath.sibling("fake_schema1") files = upgrader.scanForUpgradeFiles("fake_dialect") self.assertEqual(files, [(3, 4, upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_3_to_4.sql"))], ) upgrader.schemaLocation = getModule(__name__).filePath.sibling("fake_schema2") files = upgrader.scanForUpgradeFiles("fake_dialect") self.assertEqual(files, [ (3, 4, upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_3_to_4.sql")), (3, 5, upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_3_to_5.sql")), (4, 5, upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_4_to_5.sql")), ] )
def test_upgradeAvailability(self): """ Make sure that each old schema has a valid upgrade path to the current one. """ for dialect in (POSTGRES_DIALECT, ORACLE_DIALECT,): upgrader = UpgradeDatabaseSchemaStep(None) files = upgrader.scanForUpgradeFiles(dialect) current_version = self._getSchemaVersion(upgrader.schemaLocation.child("current.sql"), "VERSION") for child in upgrader.schemaLocation.child("old").child(dialect).globChildren("*.sql"): old_version = self._getSchemaVersion(child, "VERSION") upgrades = upgrader.determineUpgradeSequence(old_version, current_version, files, dialect) self.assertNotEqual(len(upgrades), 0)
def test_scanUpgradeFiles(self): upgrader = UpgradeDatabaseSchemaStep(None) upgrader.schemaLocation = getModule(__name__).filePath.sibling( "fake_schema1") files = upgrader.scanForUpgradeFiles("fake_dialect") self.assertEqual( files, [(3, 4, upgrader.schemaLocation.child("upgrades").child( "fake_dialect").child("upgrade_from_3_to_4.sql"))], ) upgrader.schemaLocation = getModule(__name__).filePath.sibling( "fake_schema2") files = upgrader.scanForUpgradeFiles("fake_dialect") self.assertEqual(files, [ (3, 4, upgrader.schemaLocation.child("upgrades").child( "fake_dialect").child("upgrade_from_3_to_4.sql")), (3, 5, upgrader.schemaLocation.child("upgrades").child( "fake_dialect").child("upgrade_from_3_to_5.sql")), (4, 5, upgrader.schemaLocation.child("upgrades").child( "fake_dialect").child("upgrade_from_4_to_5.sql")), ])
def test_upgradeAvailability(self): """ Make sure that each old schema has a valid upgrade path to the current one. """ for dialect in ( POSTGRES_DIALECT, ORACLE_DIALECT, ): upgrader = UpgradeDatabaseSchemaStep(None) files = upgrader.scanForUpgradeFiles(dialect) current_version = self._getSchemaVersion( upgrader.schemaLocation.child("current.sql"), "VERSION") for child in upgrader.schemaLocation.child("old").child( dialect).globChildren("*.sql"): old_version = self._getSchemaVersion(child, "VERSION") upgrades = upgrader.determineUpgradeSequence( old_version, current_version, files, dialect) self.assertNotEqual(len(upgrades), 0)