This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
"""Submission limits filter cached unsubmitted Alpha snapshots before pagination."""
|
||||
|
||||
import csv
|
||||
import io
|
||||
|
||||
from app.alphas import snapshot_columns, upsert_alpha
|
||||
from tests.conftest import alpha
|
||||
|
||||
|
||||
async def test_blocked_filter_intersects_filters_and_export_and_refresh(app, logged_in):
|
||||
async with app.state.sessions.begin() as db:
|
||||
for name, result, status, region in [
|
||||
("blocked1", "FAIL", "UNSUBMITTED", "USA"),
|
||||
("blocked2", "fail", "UNSUBMITTED", "USA"),
|
||||
("other_region", "FAIL", "UNSUBMITTED", "CHN"),
|
||||
("submitted", "FAIL", "ACTIVE", "USA"),
|
||||
("passed", "PASS", "UNSUBMITTED", "USA"),
|
||||
("pending", "PENDING", "UNSUBMITTED", "USA"),
|
||||
("missing", None, "UNSUBMITTED", "USA"),
|
||||
]:
|
||||
checks = [{"name": "LOW_SHARPE", "result": "PASS"}]
|
||||
if result:
|
||||
checks.append({"name": "REGULAR_SUBMISSION", "result": result})
|
||||
await upsert_alpha(db, alpha(name, status=status, settings={"region": region}, **{"is": {"checks": checks}}))
|
||||
query = "submission_blocked=true®ion=USA&check_type=PRE_CHECK&sort=id&direction=asc&limit=1&offset=1"
|
||||
response = await logged_in.get(f"/api/v1/alphas?{query}")
|
||||
assert response.status_code == 200
|
||||
assert response.json()["total"] == 2
|
||||
assert [row["id"] for row in response.json()["items"]] == ["blocked2"]
|
||||
export = await logged_in.get(f"/api/v1/alphas/export?{query}")
|
||||
assert [row["id"] for row in csv.DictReader(io.StringIO(export.text.lstrip("\ufeff")))] == ["blocked1", "blocked2"]
|
||||
assert (await logged_in.get("/api/v1/alphas?submission_blocked=true&submission=SUBMITTED")).json()["total"] == 0
|
||||
assert (await logged_in.get("/api/v1/alphas?submission_blocked=true&q=blocked1")).json()["total"] == 1
|
||||
async with app.state.sessions.begin() as db:
|
||||
await upsert_alpha(db, alpha("blocked1", **{"is": {"checks": [{"name": "REGULAR_SUBMISSION", "result": "PASS"}]}}))
|
||||
assert (await logged_in.get("/api/v1/alphas?submission_blocked=true&q=blocked1")).json()["total"] == 0
|
||||
|
||||
|
||||
def test_explicit_check_refreshes_limit_independently_of_quality():
|
||||
for checked in (False, True):
|
||||
for result, blocked in [("FAIL", True), ("PASS", False), ("PENDING", False)]:
|
||||
columns = snapshot_columns({}, {}, [{"name": "LOW_SHARPE", "result": "PASS"},
|
||||
{"name": "REGULAR_SUBMISSION", "result": result}], checked=checked)
|
||||
assert columns["submission_blocked"] is blocked
|
||||
assert columns["check_type"] == ("PASS" if checked else "PRE_CHECK")
|
||||
Reference in New Issue
Block a user