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
« 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
5from gtrends_collection import Collector
8# pylint: disable=C0103
9class Build:
10 """Minimal representation of the service builder."""
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
24 def getTimelinesForHealth(self, **kwargs):
26 return Service(**kwargs)
29class Service:
30 """Minimal representation of trends service API."""
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
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 }
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"]