#!/usr/bin/env python3 from datetime import timedelta import logging import pytest from tentacles.db import Db # FIXME: Should this be an autouse fixture? Maybe. Doesn't buy much tho. logging.addLevelName(logging.DEBUG - 5, "TRACE") logging.TRACE = logging.DEBUG - 5 @pytest.fixture def db(): conn = Db(":memory:") conn.connect() conn.migrate() yield conn conn.close() @pytest.fixture def username_testy(): return "testy@test.com" @pytest.fixture def password_testy(): return "testpw" @pytest.fixture def uid_testy(db: Db, username_testy, password_testy) -> int: return db.try_create_user( username=username_testy, email=username_testy, password=password_testy, sid=1, gid=0, # Note: to bypass the approve/enable machinery ).id @pytest.fixture def login_ttl() -> timedelta: return timedelta(hours=12) @pytest.fixture def sid_testy(db: Db, uid_testy, username_testy, password_testy, login_ttl): res = db.try_login(username=username_testy, password=password_testy, ttl=login_ttl) assert res.user_id == uid_testy return res.id