Skip to content

Commit 530612d

Browse files
authored
Merge pull request #170 from krivard/feature/cvc-multi-signal-queries
Add support for querying multiple signals
2 parents 6ff3b4a + a57b61a commit 530612d

13 files changed

+201
-74
lines changed

integrations/acquisition/covidcast/test_covidcast_meta_caching.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""Integration tests for covidcast's metadata caching."""
22

33
# standard library
4+
import json
45
import unittest
56

67
# third party
@@ -100,15 +101,15 @@ def test_caching(self):
100101
'stdev_value': 0,
101102
'max_issue': 20200423,
102103
'min_lag': 0,
103-
'max_lag': 1
104+
'max_lag': 1,
104105
}
105106
])
106-
epidata1={'result':1,'message':'success','epidata':epidata1}
107+
epidata1={'result':1, 'message':'success', 'epidata':epidata1}
107108

108109
# make sure the API covidcast_meta is still blank, since it only serves
109110
# the cached version and we haven't cached anything yet
110111
epidata2 = Epidata.covidcast_meta()
111-
self.assertEqual(epidata2['result'], -2)
112+
self.assertEqual(epidata2['result'], -2, json.dumps(epidata2))
112113

113114
# update the cache
114115
args = None

integrations/acquisition/covidcast/test_csv_uploading.py

+7
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ def apply_lag(expected_epidata):
126126
'stderr': 0.1,
127127
'sample_size': 10,
128128
'direction': None,
129+
'signal': 'test',
129130
},
130131
{
131132
'time_value': 20200419,
@@ -134,6 +135,7 @@ def apply_lag(expected_epidata):
134135
'stderr': 0.3,
135136
'sample_size': 30,
136137
'direction': None,
138+
'signal': 'test',
137139
},
138140
{
139141
'time_value': 20200419,
@@ -142,6 +144,7 @@ def apply_lag(expected_epidata):
142144
'stderr': 0.2,
143145
'sample_size': 20,
144146
'direction': None,
147+
'signal': 'test',
145148
},
146149
]),
147150
'message': 'success',
@@ -164,6 +167,7 @@ def apply_lag(expected_epidata):
164167
'stderr': 0.01,
165168
'sample_size': 100,
166169
'direction': None,
170+
'signal': 'wip_prototype',
167171
},
168172
{
169173
'time_value': 20200419,
@@ -172,6 +176,7 @@ def apply_lag(expected_epidata):
172176
'stderr': 0.02,
173177
'sample_size': 200,
174178
'direction': None,
179+
'signal': 'wip_prototype',
175180
},
176181
{
177182
'time_value': 20200419,
@@ -180,6 +185,7 @@ def apply_lag(expected_epidata):
180185
'stderr': 0.03,
181186
'sample_size': 300,
182187
'direction': None,
188+
'signal': 'wip_prototype',
183189
},
184190
]),
185191
'message': 'success',
@@ -202,6 +208,7 @@ def apply_lag(expected_epidata):
202208
'stderr': 5.4,
203209
'sample_size': 624,
204210
'direction': None,
211+
'signal': 'wip_really_long_name_that_will_be_accepted',
205212
},
206213
])
207214
})

integrations/acquisition/covidcast/test_direction_updating.py

+24-12
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,8 @@ def test_uploading(self):
107107
'sample_size': 0,
108108
'direction': None,
109109
'issue': 20201028,
110-
'lag': 0
110+
'lag': 0,
111+
'signal': 'sig1'
111112
},
112113
{
113114
'time_value': 20201029,
@@ -117,7 +118,8 @@ def test_uploading(self):
117118
'sample_size': 0,
118119
'direction': None,
119120
'issue': 20201029,
120-
'lag': 0
121+
'lag': 0,
122+
'signal': 'sig1'
121123
},
122124
{
123125
'time_value': 20201030,
@@ -127,7 +129,8 @@ def test_uploading(self):
127129
'sample_size': 0,
128130
'direction': None,
129131
'issue': 20201030,
130-
'lag': 0
132+
'lag': 0,
133+
'signal': 'sig1'
131134
},
132135
],
133136
'message': 'success',
@@ -149,7 +152,8 @@ def test_uploading(self):
149152
'sample_size': 0,
150153
'direction': None,
151154
'issue': 20200228,
152-
'lag': 0
155+
'lag': 0,
156+
'signal': 'sig',
153157
},
154158
{
155159
'time_value': 20200229,
@@ -159,7 +163,8 @@ def test_uploading(self):
159163
'sample_size': 0,
160164
'direction': None,
161165
'issue': 20200229,
162-
'lag': 0
166+
'lag': 0,
167+
'signal': 'sig',
163168
},
164169
{
165170
'time_value': 20200301,
@@ -169,7 +174,8 @@ def test_uploading(self):
169174
'sample_size': 0,
170175
'direction': 1,
171176
'issue': 20200301,
172-
'lag': 0
177+
'lag': 0,
178+
'signal': 'sig',
173179
},
174180
{
175181
'time_value': 20200511,
@@ -179,7 +185,8 @@ def test_uploading(self):
179185
'sample_size': 0,
180186
'direction': None,
181187
'issue': 20200511,
182-
'lag': 0
188+
'lag': 0,
189+
'signal': 'sig',
183190
},
184191
{
185192
'time_value': 20200512,
@@ -189,7 +196,8 @@ def test_uploading(self):
189196
'sample_size': 0,
190197
'direction': None,
191198
'issue': 20200512,
192-
'lag': 0
199+
'lag': 0,
200+
'signal': 'sig',
193201
},
194202
{
195203
'time_value': 20200517,
@@ -199,7 +207,8 @@ def test_uploading(self):
199207
'sample_size': 0,
200208
'direction': 0,
201209
'issue': 20200517,
202-
'lag': 0
210+
'lag': 0,
211+
'signal': 'sig',
203212
},
204213
{
205214
'time_value': 20200615,
@@ -209,7 +218,8 @@ def test_uploading(self):
209218
'sample_size': 0,
210219
'direction': None,
211220
'issue': 20200615,
212-
'lag': 0
221+
'lag': 0,
222+
'signal': 'sig',
213223
},
214224
{
215225
'time_value': 20200616,
@@ -219,7 +229,8 @@ def test_uploading(self):
219229
'sample_size': 0,
220230
'direction': None,
221231
'issue': 20200616,
222-
'lag': 0
232+
'lag': 0,
233+
'signal': 'sig',
223234
},
224235
{
225236
'time_value': 20200617,
@@ -229,7 +240,8 @@ def test_uploading(self):
229240
'sample_size': 0,
230241
'direction': 1,
231242
'issue': 20200617,
232-
'lag': 0
243+
'lag': 0,
244+
'signal': 'sig',
233245
},
234246
],
235247
'message': 'success',

integrations/client/test_delphi_epidata.py

+78-7
Original file line numberDiff line numberDiff line change
@@ -45,19 +45,85 @@ def tearDown(self):
4545

4646
def test_covidcast(self):
4747
"""Test that the covidcast endpoint returns expected data."""
48-
48+
self.maxDiff=None
49+
4950
# insert dummy data
5051
self.cur.execute('''
5152
insert into covidcast values
5253
(0, 'src', 'sig', 'day', 'county', 20200414, '01234',
5354
123, 1.5, 2.5, 3.5, 456, 4, 20200414, 0, 0, False),
55+
(0, 'src', 'sig2', 'day', 'county', 20200414, '01234',
56+
123, 1.5, 2.5, 3.5, 456, 4, 20200414, 0, 0, False),
5457
(0, 'src', 'sig', 'day', 'county', 20200414, '01234',
5558
456, 5.5, 1.2, 10.5, 789, 0, 20200415, 1, 0, False),
5659
(0, 'src', 'sig', 'day', 'county', 20200414, '01234',
5760
345, 6.5, 2.2, 11.5, 678, 0, 20200416, 2, 1, False)
5861
''')
5962
self.cnx.commit()
6063

64+
# fetch data
65+
response = Epidata.covidcast(
66+
'src', ['sig','sig2'], 'day', 'county', 20200414, '01234')
67+
68+
# check result
69+
self.assertEqual(response, {
70+
'result': 1,
71+
'epidata': [{
72+
'time_value': 20200414,
73+
'geo_value': '01234',
74+
'value': 6.5,
75+
'stderr': 2.2,
76+
'sample_size': 11.5,
77+
'direction': 0,
78+
'issue': 20200416,
79+
'lag': 2,
80+
'signal': 'sig',
81+
},{
82+
'time_value': 20200414,
83+
'geo_value': '01234',
84+
'value': 1.5,
85+
'stderr': 2.5,
86+
'sample_size': 3.5,
87+
'direction': 4,
88+
'issue': 20200414,
89+
'lag': 0,
90+
'signal': 'sig2',
91+
}],
92+
'message': 'success',
93+
})
94+
95+
# fetch data
96+
response = Epidata.covidcast(
97+
'src', ['sig','sig2'], 'day', 'county', 20200414, '01234', format='tree')
98+
99+
# check result
100+
self.assertEqual(response, {
101+
'result': 1,
102+
'epidata': [{
103+
'sig': [{
104+
'time_value': 20200414,
105+
'geo_value': '01234',
106+
'value': 6.5,
107+
'stderr': 2.2,
108+
'sample_size': 11.5,
109+
'direction': 0,
110+
'issue': 20200416,
111+
'lag': 2,
112+
}],
113+
'sig2': [{
114+
'time_value': 20200414,
115+
'geo_value': '01234',
116+
'value': 1.5,
117+
'stderr': 2.5,
118+
'sample_size': 3.5,
119+
'direction': 4,
120+
'issue': 20200414,
121+
'lag': 0,
122+
}],
123+
}],
124+
'message': 'success',
125+
})
126+
61127
# fetch data, without specifying issue or lag
62128
response_1 = Epidata.covidcast(
63129
'src', 'sig', 'day', 'county', 20200414, '01234')
@@ -73,7 +139,8 @@ def test_covidcast(self):
73139
'sample_size': 11.5,
74140
'direction': 0,
75141
'issue': 20200416,
76-
'lag': 2
142+
'lag': 2,
143+
'signal': 'sig',
77144
}],
78145
'message': 'success',
79146
})
@@ -94,7 +161,8 @@ def test_covidcast(self):
94161
'sample_size': 10.5,
95162
'direction': 0,
96163
'issue': 20200415,
97-
'lag': 1
164+
'lag': 1,
165+
'signal': 'sig',
98166
}],
99167
'message': 'success',
100168
})
@@ -115,7 +183,8 @@ def test_covidcast(self):
115183
'sample_size': 3.5,
116184
'direction': 4,
117185
'issue': 20200414,
118-
'lag': 0
186+
'lag': 0,
187+
'signal': 'sig',
119188
}, {
120189
'time_value': 20200414,
121190
'geo_value': '01234',
@@ -124,7 +193,8 @@ def test_covidcast(self):
124193
'sample_size': 10.5,
125194
'direction': 0,
126195
'issue': 20200415,
127-
'lag': 1
196+
'lag': 1,
197+
'signal': 'sig',
128198
}],
129199
'message': 'success',
130200
})
@@ -145,7 +215,8 @@ def test_covidcast(self):
145215
'sample_size': 11.5,
146216
'direction': 0,
147217
'issue': 20200416,
148-
'lag': 2
218+
'lag': 2,
219+
'signal': 'sig',
149220
}],
150221
'message': 'success',
151222
})
@@ -189,7 +260,7 @@ def test_covidcast_meta(self):
189260
'last_update': 345,
190261
'max_issue': 20200416,
191262
'min_lag': 1,
192-
'max_lag': 2
263+
'max_lag': 2,
193264
}],
194265
'message': 'success',
195266
})

0 commit comments

Comments
 (0)