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
« 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
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_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
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 }
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"]