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

27 statements  

1import pytest 

2 

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 

7 

8 

9@pytest.fixture(autouse=True) 

10def _(testconfig): 

11 pass 

12 

13 

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 ) 

38 

39 

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 

45 

46 

47def test_regression_search_in_area(db): 

48 """ 

49 Makes sure search_in_area works. 

50 

51 At the equator/prime meridian intersection (0,0), one degree is roughly 111 km. 

52 """ 

53 

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) 

64 

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]