Coverage for src/tests/test_search.py: 100%
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1import pytest
3from couchers.utils import create_coordinate
4from proto import search_pb2
5from tests.test_communities import testing_communities # noqa
6from tests.test_fixtures import db, generate_user, search_session, testconfig # noqa
9@pytest.fixture(autouse=True)
10def _(testconfig):
11 pass
14def test_Search(testing_communities):
15 user, token = generate_user()
16 with search_session(token) as api:
17 res = api.Search(
18 search_pb2.SearchReq(
19 query="Country 1, Region 1",
20 include_users=True,
21 include_communities=True,
22 include_groups=True,
23 include_places=True,
24 include_guides=True,
25 )
26 )
27 res = api.Search(
28 search_pb2.SearchReq(
29 query="Country 1, Region 1, Attraction",
30 title_only=True,
31 include_users=True,
32 include_communities=True,
33 include_groups=True,
34 include_places=True,
35 include_guides=True,
36 )
37 )
40def test_UserSearch(testing_communities):
41 user, token = generate_user()
42 with search_session(token) as api:
43 res = api.UserSearch(search_pb2.UserSearchReq())
44 assert len(res.results) > 0
47def test_regression_search_in_area(db):
48 """
49 Makes sure search_in_area works.
51 At the equator/prime meridian intersection (0,0), one degree is roughly 111 km.
52 """
54 # outside
55 user1, token1 = generate_user(geom=create_coordinate(1, 0), geom_radius=100)
56 # outside
57 user2, token2 = generate_user(geom=create_coordinate(0, 1), geom_radius=100)
58 # inside
59 user3, token3 = generate_user(geom=create_coordinate(0.1, 0), geom_radius=100)
60 # inside
61 user4, token4 = generate_user(geom=create_coordinate(0, 0.1), geom_radius=100)
62 # outside
63 user5, token5 = generate_user(geom=create_coordinate(10, 10), geom_radius=100)
65 with search_session(token5) as api:
66 res = api.UserSearch(
67 search_pb2.UserSearchReq(
68 search_in_area=search_pb2.Area(
69 lat=0,
70 lng=0,
71 radius=100000,
72 )
73 )
74 )
75 assert [result.user.user_id for result in res.results] == [user3.id, user4.id]