test database upgrades with alembic

This commit is contained in:
Min RK
2016-05-26 15:32:57 +02:00
parent c998458362
commit a7ea5774d9

View File

@@ -0,0 +1,40 @@
import os
import shutil
from sqlalchemy.exc import OperationalError
from pytest import raises
from ..dbutil import upgrade
from ..app import NewToken, UpgradeDB, JupyterHub
here = os.path.dirname(__file__)
old_db = os.path.join(here, 'old-jupyterhub.sqlite')
def generate_old_db(path):
db_path = os.path.join(path, "jupyterhub.sqlite")
print(old_db, db_path)
shutil.copy(old_db, db_path)
return 'sqlite:///%s' % db_path
def test_upgrade(tmpdir):
print(tmpdir)
db_url = generate_old_db(str(tmpdir))
print(db_url)
upgrade(db_url)
def test_upgrade_entrypoint(tmpdir):
generate_old_db(str(tmpdir))
tmpdir.chdir()
tokenapp = NewToken()
tokenapp.initialize(['kaylee'])
with raises(OperationalError):
tokenapp.start()
upgradeapp = UpgradeDB()
upgradeapp.initialize([])
upgradeapp.start()
# run tokenapp again, it should work
tokenapp.start()