Coverage for app/backend/src/tests/test_models.py: 100%
21 statements
« prev ^ index » next coverage.py v7.16.1, created at 2026-09-19 15:47 +0000
« prev ^ index » next coverage.py v7.16.1, created at 2026-09-19 15:47 +0000
1from datetime import UTC, date, datetime
3from sqlalchemy import select
4from sqlalchemy.sql import func
6from couchers.db import session_scope
7from tests.fixtures.db import make_user
10def test_user_age(db):
11 # these used to be test for our hand-rolled age, but moving to postgres now so just double check it does what we expect
12 today = date(2019, 7, 5)
14 with session_scope() as session:
15 assert session.execute(select(func.date_part("year", func.age(today, date(1990, 7, 4))))).scalar_one() == 29
16 assert session.execute(select(func.date_part("year", func.age(today, date(1990, 7, 31))))).scalar_one() == 28
17 assert session.execute(select(func.date_part("year", func.age(today, date(1992, 2, 29))))).scalar_one() == 27
20def test_user_display_joined():
21 assert make_user(joined=datetime(2020, 7, 10, 16, 34, 1, 1, tzinfo=UTC)).display_joined == datetime(
22 2020, 7, 10, 16, 0, 0, 0, tzinfo=UTC
23 )
24 assert make_user(joined=datetime(2025, 7, 10, 16, 59, 1, 1, tzinfo=UTC)).display_joined == datetime(
25 2025, 7, 10, 16, 0, 0, 0, tzinfo=UTC
26 )
27 assert make_user(joined=datetime(2020, 7, 10, 16, 0, 1, 1, tzinfo=UTC)).display_joined == datetime(
28 2020, 7, 10, 16, 0, 0, 0, tzinfo=UTC
29 )
30 assert make_user(joined=datetime(2020, 7, 10, 0, 0, 0, 0, tzinfo=UTC)).display_joined == datetime(
31 2020, 7, 10, 0, 0, 0, 0, tzinfo=UTC
32 )
35def test_user_display_last_active():
36 assert make_user(last_active=datetime(2020, 7, 10, 16, 34, 1, 1, tzinfo=UTC)).display_last_active == datetime(
37 2020, 7, 10, 16, 0, 0, 0, tzinfo=UTC
38 )
39 assert make_user(last_active=datetime(2025, 7, 10, 17, 59, 1, 1, tzinfo=UTC)).display_last_active == datetime(
40 2025, 7, 10, 17, 0, 0, 0, tzinfo=UTC
41 )
42 assert make_user(last_active=datetime(2020, 7, 10, 16, 0, 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(2020, 7, 10, 0, 0, 0, 0, tzinfo=UTC)).display_last_active == datetime(
46 2020, 7, 10, 0, 0, 0, 0, tzinfo=UTC
47 )