Coverage for app / backend / src / tests / test_models.py: 100%
25 statements
« prev ^ index » next coverage.py v7.13.2, created at 2026-02-03 06:18 +0000
« prev ^ index » next coverage.py v7.13.2, created at 2026-02-03 06:18 +0000
1from datetime import 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)).display_joined == datetime(2020, 7, 10, 16, 0, 0, 0)
28 assert make_user(joined=datetime(2025, 7, 10, 16, 59, 1, 1)).display_joined == datetime(2025, 7, 10, 16, 0, 0, 0)
29 assert make_user(joined=datetime(2020, 7, 10, 16, 0, 1, 1)).display_joined == datetime(2020, 7, 10, 16, 0, 0, 0)
30 assert make_user(joined=datetime(2020, 7, 10, 0, 0, 0, 0)).display_joined == datetime(2020, 7, 10, 0, 0, 0, 0)
33def test_user_display_last_active():
34 assert make_user(last_active=datetime(2020, 7, 10, 16, 34, 1, 1)).display_last_active == datetime(
35 2020, 7, 10, 16, 0, 0, 0
36 )
37 assert make_user(last_active=datetime(2025, 7, 10, 17, 59, 1, 1)).display_last_active == datetime(
38 2025, 7, 10, 17, 0, 0, 0
39 )
40 assert make_user(last_active=datetime(2020, 7, 10, 16, 0, 1, 1)).display_last_active == datetime(
41 2020, 7, 10, 16, 0, 0, 0
42 )
43 assert make_user(last_active=datetime(2020, 7, 10, 0, 0, 0, 0)).display_last_active == datetime(
44 2020, 7, 10, 0, 0, 0, 0
45 )