Coverage for tests \ collector_test.py: 100%

29 statements  

« prev     ^ index     » next       coverage.py v7.13.3, created at 2026-02-05 04:42 -0500

1import datetime 

2from typing import List, Union 

3from unittest.mock import patch 

4 

5from gtrends_collection import Collector 

6 

7 

8# pylint: disable=C0103 

9class Build: 

10 """Minimal representation of the service builder.""" 

11 

12 def __init__( 

13 self, 

14 service: Union[str, None] = None, 

15 version: Union[str, None] = None, 

16 discoveryServiceUrl: Union[str, None] = None, 

17 developerKey: Union[str, None] = None, 

18 ): 

19 self.service = service 

20 self.version = version 

21 self.discoveryServiceUrl = discoveryServiceUrl 

22 self.versdeveloperKeyion = developerKey 

23 

24 def getTimelinesForHealth(self, **kwargs): 

25 

26 return Service(**kwargs) 

27 

28 

29class Service: 

30 """Minimal representation of trends service API.""" 

31 

32 def __init__( 

33 self, 

34 terms: List[str], 

35 timelineResolution: str, 

36 time_startDate: str = "2004-01-01", 

37 time_endDate: str = datetime.datetime.now(datetime.timezone.utc).strftime("%Y-%m-%d"), 

38 geoRestriction_country: Union[str, None] = None, 

39 geoRestriction_state: Union[str, None] = None, 

40 geoRestriction_region: Union[str, None] = None, 

41 geoRestriction_dma: Union[str, None] = None, 

42 ): 

43 self.terms = terms 

44 self.timelineResolution = timelineResolution 

45 self.time_startDate = time_startDate 

46 self.time_endDate = time_endDate 

47 self.geoRestriction_country = geoRestriction_country 

48 self.geoRestriction_state = geoRestriction_state 

49 self.geoRestriction_region = geoRestriction_region 

50 self.geoRestriction_dma = geoRestriction_dma 

51 

52 def execute(self): 

53 """GET values.""" 

54 return { 

55 "lines": [ 

56 { 

57 "term": self.terms[0], 

58 "points": [{"date": self.time_startDate, "value": 0.0}, {"date": self.time_endDate, "value": 0.0}], 

59 } 

60 ] 

61 } 

62 

63 

64@patch("apiclient.discovery.build", Build) 

65def test_collector(): 

66 collector = Collector(wait_time=0) 

67 data = collector.process_batches() 

68 assert data.columns.to_list() == ["date", "value", "location", "term", "retrieved"]