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

1from datetime import 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)).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) 

31 

32 

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 )