Add test_session, add randomizers, move test_app, user/session fixtures

This commit is contained in:
2024-11-09 17:00:45 -06:00
parent 35d967360d
commit d725d1b863
5 changed files with 76 additions and 0 deletions

View File

View File

@@ -0,0 +1,15 @@
import random
import string
import time
def epoch() -> int:
return int(time.time())
def random_string(length: int = 10) -> str:
return "".join(random.choices(string.ascii_lowercase + string.digits, k=length))
def random_email() -> str:
return random_string() + str(epoch()) + "@example.com"

View File

@@ -0,0 +1,51 @@
from datetime import timedelta
import pytest
import structlog
from linkpulse.models import Session
from linkpulse.tests.random import random_string
from linkpulse.tests.test_user import user
from linkpulse.utilities import utc_now
logger = structlog.get_logger()
@pytest.fixture
def db():
return Session._meta.database
@pytest.fixture
def session(user):
return Session.create(
user=user, token=random_string(32), expiry=utc_now() + timedelta(hours=1)
)
@pytest.fixture
def expired_session(session):
session.expiry = utc_now() - timedelta(hours=1)
return session
def test_session_create(session):
assert Session.get_or_none(Session.token == session.token) is not None
def test_auto_revoke(db, expired_session):
# Expired, but still exists
assert Session.get_or_none(Session.token == expired_session.token) is not None
# Test revoke=False
assert expired_session.is_expired(revoke=False) is True
# Test revoke=True
assert expired_session.is_expired(revoke=True) is True
# Expired, and no longer exists
assert Session.get_or_none(Session.token == expired_session.token) is None
def test_expiry_valid(session):
assert session.is_expired() is False
def test_expiry_invalid(expired_session):
assert expired_session.is_expired() is True

View File

@@ -0,0 +1,10 @@
import pytest
from linkpulse.models import User
from linkpulse.tests.random import epoch, random_email, random_string
@pytest.fixture
def user():
return User.create(
email=random_email(), password_hash=str(epoch()) + random_string(64)
)