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

1from datetime import UTC, date, datetime 

2 

3import pytest 

4from sqlalchemy import select 

5from sqlalchemy.sql import func 

6 

7from couchers.db import session_scope 

8from tests.fixtures.db import make_user 

9 

10 

11@pytest.fixture(autouse=True) 

12def _(testconfig): 

13 pass 

14 

15 

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) 

19 

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 

24 

25 

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 ) 

39 

40 

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 )