Coverage for app/backend/src/tests/test_models.py: 100%
25 statements
« prev ^ index » next coverage.py v7.14.2, created at 2026-06-21 09:29 +0000
« prev ^ index » next coverage.py v7.14.2, created at 2026-06-21 09:29 +0000
1from datetime import UTC, date, datetime
3import pytest
4from sqlalchemy import select
5from sqlalchemy.sql import func
7from couchers.db import session_scope
8from tests.fixtures.db import make_user
11@pytest.fixture(autouse=True)
12def _(testconfig):
13 pass
16def test_user_age(db):
17 # these used to be test for our hand-rolled age, but moving to postgres now so just double check it does what we expect
18 today = date(2019, 7, 5)
20 with session_scope() as session:
21 assert session.execute(select(func.date_part("year", func.age(today, date(1990, 7, 4))))).scalar_one() == 29
22 assert session.execute(select(func.date_part("year", func.age(today, date(1990, 7, 31))))).scalar_one() == 28
23 assert session.execute(select(func.date_part("year", func.age(today, date(1992, 2, 29))))).scalar_one() == 27
26def test_user_display_joined():
27 assert make_user(joined=datetime(2020, 7, 10, 16, 34, 1, 1, tzinfo=UTC)).display_joined == datetime(
28 2020, 7, 10, 16, 0, 0, 0, tzinfo=UTC
29 )
30 assert make_user(joined=datetime(2025, 7, 10, 16, 59, 1, 1, tzinfo=UTC)).display_joined == datetime(
31 2025, 7, 10, 16, 0, 0, 0, tzinfo=UTC
32 )
33 assert make_user(joined=datetime(2020, 7, 10, 16, 0, 1, 1, tzinfo=UTC)).display_joined == datetime(
34 2020, 7, 10, 16, 0, 0, 0, tzinfo=UTC
35 )
36 assert make_user(joined=datetime(2020, 7, 10, 0, 0, 0, 0, tzinfo=UTC)).display_joined == datetime(
37 2020, 7, 10, 0, 0, 0, 0, tzinfo=UTC
38 )
41def test_user_display_last_active():
42 assert make_user(last_active=datetime(2020, 7, 10, 16, 34, 1, 1, tzinfo=UTC)).display_last_active == datetime(
43 2020, 7, 10, 16, 0, 0, 0, tzinfo=UTC
44 )
45 assert make_user(last_active=datetime(2025, 7, 10, 17, 59, 1, 1, tzinfo=UTC)).display_last_active == datetime(
46 2025, 7, 10, 17, 0, 0, 0, tzinfo=UTC
47 )
48 assert make_user(last_active=datetime(2020, 7, 10, 16, 0, 1, 1, tzinfo=UTC)).display_last_active == datetime(
49 2020, 7, 10, 16, 0, 0, 0, tzinfo=UTC
50 )
51 assert make_user(last_active=datetime(2020, 7, 10, 0, 0, 0, 0, tzinfo=UTC)).display_last_active == datetime(
52 2020, 7, 10, 0, 0, 0, 0, tzinfo=UTC
53 )