Skip to content

Commit 9b1eaeb

Browse files
committed
1. add issues=* handler to apply_issues_filter
2. add unittest for placeholder on issues
1 parent 2d1ad93 commit 9b1eaeb

File tree

3 files changed

+38
-3
lines changed

3 files changed

+38
-3
lines changed

integrations/server/test_covidcast.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,18 @@ def _insert_placeholder_set_four(self):
7373
for i in [4, 5, 6]
7474
]
7575
self._insert_rows(rows)
76+
return rows
77+
78+
def _insert_placeholder_set_five(self):
79+
rows = [
80+
self._make_placeholder_row(time_value=2000_01_01, value=i*1., stderr=i*10., sample_size=i*100., issue=2000_01_03+i)[0]
81+
for i in [1, 2, 3]
82+
] + [
83+
# issue intended to overlap with the issue above
84+
self._make_placeholder_row(time_value=2000_01_01+i-3, value=i*1., stderr=i*10., sample_size=i*100., issue=2000_01_03+i-3)[0]
85+
for i in [4, 5, 6]
86+
]
87+
self._insert_rows(rows)
7688
return rows
7789

7890
def test_round_trip(self):
@@ -257,6 +269,26 @@ def test_time_values_wildcard(self):
257269
'message': 'success',
258270
})
259271

272+
def test_issues_wildcard(self):
273+
"""Select all issues with a wildcard query."""
274+
275+
# insert placeholder data
276+
rows = self._insert_placeholder_set_five()
277+
expected_issues = [
278+
self.expected_from_row(r) for r in rows[:3]
279+
]
280+
281+
# make the request
282+
response, _ = self.request_based_on_row(rows[0], issues="*")
283+
284+
self.maxDiff = None
285+
# assert that the right data came back
286+
self.assertEqual(response, {
287+
'result': 1,
288+
'epidata': expected_issues,
289+
'message': 'success',
290+
})
291+
260292
def test_signal_wildcard(self):
261293
"""Select all signals with a wildcard query."""
262294

src/server/_query.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -475,8 +475,11 @@ def apply_lag_filter(self, history_table: str, lag: Optional[int]):
475475

476476
def apply_issues_filter(self, history_table: str, issues: Optional[TimeValues]):
477477
if issues:
478-
self.retable(history_table)
479-
self.where_integers("issue", issues)
478+
if issues == ["*"]:
479+
self.retable(history_table)
480+
else:
481+
self.retable(history_table)
482+
self.where_integers("issue", issues)
480483
return self
481484

482485
def apply_as_of_filter(self, history_table: str, as_of: Optional[int]):

src/server/_validate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ def _parse_range(part: str):
127127
def parse_date(s: str) -> int:
128128
# parses a given string in format YYYYMMDD or YYYY-MM-DD to a number in the form YYYYMMDD
129129
try:
130-
if s is "*":
130+
if s == "*":
131131
return s
132132
else:
133133
return int(s.replace("-", ""))

0 commit comments

Comments
 (0)