Skip to content

Commit 7d2542e

Browse files
committed
update tests to reflect new func structure
1 parent 635fbbe commit 7d2542e

File tree

3 files changed

+26
-87
lines changed

3 files changed

+26
-87
lines changed

google_symptoms/tests/conftest.py

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -54,21 +54,6 @@
5454
# Set up fake list of dates to fetch.
5555
dates = [
5656
"20200726",
57-
"20200727",
58-
"20200728",
59-
"20200729",
60-
"20200730",
61-
"20200731",
62-
"20200801",
63-
"20200802",
64-
"20200803",
65-
"20200804",
66-
"20200805",
67-
"20200806",
68-
"20200807",
69-
"20200808",
70-
"20200809",
71-
"20200810",
7257
"20200811"
7358
]
7459

@@ -84,7 +69,7 @@ def run_as_module():
8469
else:
8570
makedirs("receiving")
8671

87-
with mock.patch("delphi_google_symptoms.pull.get_all_dates",
72+
with mock.patch("delphi_google_symptoms.pull.get_date_range",
8873
return_value=date_list) as mock_all_dates:
8974
with mock.patch("delphi_google_symptoms.pull.initialize_credentials",
9075
return_value=None) as mock_credentials:

google_symptoms/tests/params.json.template

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
"static_file_dir": "../static",
44
"export_dir": "./receiving",
55
"cache_dir": "./cache",
6+
"num_export_days": 14,
67
"path_to_bigquery_credentials": ""
78
}

google_symptoms/tests/test_pull.py

Lines changed: 24 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
from datetime import date, datetime
55
import pandas as pd
66

7-
from delphi_google_symptoms.pull import pull_gs_data, preprocess, get_missing_dates, format_dates_for_query, pull_gs_data_one_geolevel, get_all_dates
7+
from delphi_google_symptoms.pull import (
8+
pull_gs_data, preprocess, format_dates_for_query, pull_gs_data_one_geolevel, get_date_range)
89
from delphi_google_symptoms.constants import METRICS, COMBINED_METRIC
910

1011
good_input = {
@@ -23,24 +24,19 @@
2324
new_keep_cols = ["geo_id", "timestamp"] + METRICS + [COMBINED_METRIC]
2425

2526

26-
# List of faux already-exported CSVs.
27-
exported_files = [
28-
"20201231_whatever.csv",
29-
"20210101_whatever.csv",
30-
"20210102_whatever.csv",
31-
"20210103_whatever.csv",
32-
"20210105_not_even_a_csv.txt",
33-
"not_the_right_format.csv"
27+
# Set up fake list of dates to fetch.
28+
dates = [
29+
"20200726",
30+
"20200811"
3431
]
32+
date_list = [datetime.strptime(date, "%Y%m%d").date() for date in dates]
3533

3634

3735
class TestPullGoogleSymptoms:
3836
@freeze_time("2021-01-05")
3937
@mock.patch("pandas_gbq.read_gbq")
4038
@mock.patch("delphi_google_symptoms.pull.initialize_credentials")
41-
@mock.patch("delphi_google_symptoms.pull.listdir")
42-
@mock.patch("delphi_google_symptoms.pull.isfile")
43-
def test_good_file(self, mock_is_file, mock_get_dates, mock_credentials, mock_read_gbq):
39+
def test_good_file(self, mock_credentials, mock_read_gbq):
4440
# Set up fake data.
4541
state_data = pd.read_csv(
4642
good_input["state"], parse_dates=["date"])[keep_cols]
@@ -50,11 +46,9 @@ def test_good_file(self, mock_is_file, mock_get_dates, mock_credentials, mock_re
5046
# Mocks
5147
mock_read_gbq.side_effect = [state_data, county_data]
5248
mock_credentials.return_value = None
53-
mock_get_dates.return_value = exported_files
54-
mock_is_file = True
5549

5650
dfs = pull_gs_data(
57-
"", "receiving", datetime.strptime("20201230", "%Y%m%d"))
51+
"", datetime.strptime("20201230", "%Y%m%d"), 0)
5852

5953
for level in ["county", "state"]:
6054
df = dfs[level]
@@ -88,78 +82,37 @@ def test_invalid_fips(self):
8882

8983
class TestPullHelperFuncs:
9084
@freeze_time("2021-01-05")
91-
@mock.patch("delphi_google_symptoms.pull.listdir")
92-
@mock.patch("delphi_google_symptoms.pull.isfile")
93-
def test_get_missing_dates(self, mock_is_file, mock_get_dates):
94-
mock_get_dates.return_value = exported_files
95-
mock_is_file = True
85+
def test_get_date_range_recent_export_start_date(self):
86+
output = get_date_range(
87+
datetime.strptime("20201230", "%Y%m%d"),
88+
14
89+
)
9690

97-
output = get_missing_dates(
98-
"receiving", datetime.strptime("20201230", "%Y%m%d"))
99-
100-
expected = [date(2020, 12, 30), date(2021, 1, 4), date(2021, 1, 5)]
101-
assert set(output) == set(expected)
102-
103-
@freeze_time("2021-01-05")
104-
@mock.patch("delphi_google_symptoms.pull.listdir")
105-
@mock.patch("delphi_google_symptoms.pull.isfile")
106-
def test_get_all_dates_recent_export_start_date(self, mock_is_file, mock_get_dates):
107-
mock_get_dates.return_value = exported_files
108-
mock_is_file = True
109-
110-
output = get_all_dates(
111-
"receiving", datetime.strptime("20201230", "%Y%m%d"))
112-
113-
expected = [date(2020, 12, 30),
114-
date(2020, 12, 31),
115-
date(2021, 1, 1),
116-
date(2021, 1, 2),
117-
date(2021, 1, 3),
118-
date(2021, 1, 4),
91+
expected = [date(2020, 12, 24),
11992
date(2021, 1, 5)]
12093
assert set(output) == set(expected)
12194

12295
@freeze_time("2021-01-05")
123-
@mock.patch("delphi_google_symptoms.pull.get_missing_dates")
124-
@mock.patch("delphi_google_symptoms.pull.listdir")
125-
@mock.patch("delphi_google_symptoms.pull.isfile")
126-
def test_get_all_dates(self, mock_is_file, mock_get_dates, mock_missing_dates):
127-
mock_get_dates.return_value = exported_files
128-
mock_is_file = True
129-
mock_missing_dates.return_value = [
130-
date(2020, 12, 30), date(2021, 1, 4), date(2021, 1, 5)]
131-
132-
output = get_all_dates(
133-
"receiving", datetime.strptime("20200201", "%Y%m%d"))
96+
def test_get_date_range(self):
97+
output = get_date_range(
98+
datetime.strptime("20200201", "%Y%m%d"),
99+
14
100+
)
134101

135-
expected = [date(2020, 12, 24),
136-
date(2020, 12, 25),
137-
date(2020, 12, 26),
138-
date(2020, 12, 27),
139-
date(2020, 12, 28),
140-
date(2020, 12, 29),
141-
date(2020, 12, 30),
142-
date(2020, 12, 31),
143-
date(2021, 1, 1),
144-
date(2021, 1, 2),
145-
date(2021, 1, 3),
146-
date(2021, 1, 4),
147-
date(2021, 1, 5)]
102+
expected = [date(2020, 12, 16), date(2021, 1, 5)]
148103
assert set(output) == set(expected)
149104

150105
def test_format_dates_for_query(self):
151-
date_list = [date(2016, 12, 30), date(2020, 12, 30),
152-
date(2021, 1, 4), date(2021, 1, 5)]
106+
date_list = [date(2016, 12, 30), date(2021, 1, 5)]
153107
output = format_dates_for_query(date_list)
154-
155-
expected = 'timestamp("2020-12-30"), timestamp("2021-01-04"), timestamp("2021-01-05")'
108+
expected = ["2016-12-30", "2021-01-05"]
156109
assert output == expected
157110

158111
@mock.patch("pandas_gbq.read_gbq")
159112
def test_pull_one_gs_no_dates(self, mock_read_gbq):
160113
mock_read_gbq.return_value = pd.DataFrame()
161114

162-
output = pull_gs_data_one_geolevel("state", {})
115+
output = pull_gs_data_one_geolevel("state", ["", ""])
163116
expected = pd.DataFrame(columns=new_keep_cols)
164117
assert output.equals(expected)
165118

0 commit comments

Comments
 (0)