54 lines
1.1 KiB
Python
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
|