Files
jupyterhub/jupyterhub/tests/test_db.py
2016-05-26 15:32:57 +02:00

40 lines
936 B
Python

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()