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

1from datetime import UTC, date, datetime 

2 

3from sqlalchemy import select 

4from sqlalchemy.sql import func 

5 

6from couchers.db import session_scope 

7from tests.fixtures.db import make_user 

8 

9 

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) 

13 

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 

18 

19 

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 ) 

33 

34 

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 )