source/projects/tentacles/test/conftest.py

54 lines
1.1 KiB
Python

#!/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