Coverage for app/backend/src/tests/test_resources.py: 100%
63 statements
« prev ^ index » next coverage.py v7.14.3, created at 2026-06-28 21:22 +0000
« prev ^ index » next coverage.py v7.14.3, created at 2026-06-28 21:22 +0000
1import pytest
2from google.protobuf import empty_pb2
4from tests.fixtures.sessions import resources_session
7@pytest.fixture(autouse=True)
8def _(testconfig):
9 pass
12def test_GetTermsOfService():
13 # make sure it works and we get out a bunch of text
14 with resources_session() as api:
15 res = api.GetTermsOfService(empty_pb2.Empty()).terms_of_service
16 assert len(res) > 100
17 assert "couchers, inc." in res.lower()
20def test_GetCommunityGuidelines():
21 # make sure it works and we get out a bunch of text
22 with resources_session() as api:
23 res = api.GetCommunityGuidelines(empty_pb2.Empty()).community_guidelines
24 assert len(res) == 4
25 assert res[2].title == "Be safe and sensible"
26 assert "inappropriate content" in res[2].guideline
27 assert "stroke" in res[2].icon_svg
30def test_GetRegions(db):
31 with resources_session() as api:
32 regions = api.GetRegions(empty_pb2.Empty()).regions
33 regions_list = [(r.alpha3, r.name) for r in regions]
34 assert ("FIN", "Finland") in regions_list
35 assert ("SWE", "Sweden") in regions_list
36 assert ("???", "Nonexistent region") not in regions_list
38 with resources_session(locale="es") as api:
39 regions = api.GetRegions(empty_pb2.Empty()).regions
40 regions_list = [(r.alpha3, r.name) for r in regions]
41 assert ("FIN", "Finlandia") in regions_list
42 assert ("FIN", "Finland") not in regions_list
45def test_GetLanguages(db):
46 with resources_session() as api:
47 languages = api.GetLanguages(empty_pb2.Empty()).languages
48 languages_list = [(r.code, r.name) for r in languages]
49 assert ("fin", "Finnish") in languages_list
50 assert ("swe", "Swedish") in languages_list
51 assert ("???", "Nonexistent language") not in languages_list
53 with resources_session(locale="es") as api:
54 languages = api.GetLanguages(empty_pb2.Empty()).languages
55 languages_list = [(r.code, r.name) for r in languages]
56 assert ("swe", "Sueco") in languages_list
57 assert ("swe", "Swedish") not in languages_list
60def test_GetBadges(db):
61 with resources_session() as api:
62 badges = api.GetBadges(empty_pb2.Empty()).badges
63 badges_dict = {b.id: b for b in badges}
65 # Check that all expected badges are present
66 expected_badge_ids = {
67 "founder",
68 "board_member",
69 "past_board_member",
70 "moderator",
71 "volunteer",
72 "past_volunteer",
73 "donor",
74 "phone_verified",
75 "strong_verification",
76 "swagster",
77 }
78 assert set(badges_dict.keys()) == expected_badge_ids
80 # Check that a specific badge has the correct properties
81 founder = badges_dict["founder"]
82 assert founder.id == "founder"
83 assert founder.name == "Founder"
84 assert founder.description == "This user is one of the two founders of Couchers.org"
85 assert founder.color == "#e47701"
87 # Check another badge to ensure translations are working
88 moderator = badges_dict["moderator"]
89 assert moderator.id == "moderator"
90 assert moderator.name == "Moderator"
91 assert moderator.description == "This user is a moderator of Couchers.org"
92 assert moderator.color == "#c74f5b"
94 # Check strong_verification badge
95 strong_verification = badges_dict["strong_verification"]
96 assert strong_verification.id == "strong_verification"
97 assert strong_verification.name == "Strong Verification"
98 assert (
99 strong_verification.description
100 == "This user has verified their gender and date of birth with a biometric passport"
101 )
102 assert strong_verification.color == "#1b8aa0"