Coverage for tests\collector_test.py: 100%

28 statements  

« prev     ^ index     » next       coverage.py v7.9.0, created at 2025-06-12 05:27 -0400

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_state: Union[str, None] = None, 

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

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

41 ): 

42 self.terms = terms 

43 self.timelineResolution = timelineResolution 

44 self.time_startDate = time_startDate 

45 self.time_endDate = time_endDate 

46 self.geoRestriction_state = geoRestriction_state 

47 self.geoRestriction_region = geoRestriction_region 

48 self.geoRestriction_dma = geoRestriction_dma 

49 

50 def execute(self): 

51 """GET values.""" 

52 return { 

53 "lines": [ 

54 { 

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

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

57 } 

58 ] 

59 } 

60 

61 

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

63def test_collector(): 

64 collector = Collector(wait_time=0) 

65 data = collector.process_batches() 

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