aboutsummaryrefslogtreecommitdiff
path: root/tests/incite/schemas/test_admin_responses.py
diff options
context:
space:
mode:
authorMax Nanis2026-08-27 17:46:11 -0700
committerMax Nanis2026-08-27 17:46:11 -0700
commitaeeb7fef2594ccd34fbe96a77f6c5b392299fed7 (patch)
treede0896615df0c9747208fc26eb1ddde60f248286 /tests/incite/schemas/test_admin_responses.py
parentfdc170938ac4ac8fa5d9d4df1936e6dc0777f291 (diff)
downloadgeneralresearch-aeeb7fef2594ccd34fbe96a77f6c5b392299fed7.tar.gz
generalresearch-aeeb7fef2594ccd34fbe96a77f6c5b392299fed7.zip
Ruff afternoon
Diffstat (limited to 'tests/incite/schemas/test_admin_responses.py')
-rw-r--r--tests/incite/schemas/test_admin_responses.py36
1 files changed, 22 insertions, 14 deletions
diff --git a/tests/incite/schemas/test_admin_responses.py b/tests/incite/schemas/test_admin_responses.py
index e98eecd..d2658ea 100644
--- a/tests/incite/schemas/test_admin_responses.py
+++ b/tests/incite/schemas/test_admin_responses.py
@@ -1,8 +1,11 @@
+from __future__ import annotations
+
from datetime import UTC, datetime, timedelta
from random import sample
import numpy as np
import pandas as pd
+import pandera as pa
import pytest
from generalresearch.incite.schemas import empty_dataframe_from_schema
@@ -16,12 +19,14 @@ from generalresearch.locales import Localelator
class TestAdminPOPSchema:
schema_df = empty_dataframe_from_schema(AdminPOPSchema)
countries = list(Localelator().get_all_countries())[:5]
- dates = [datetime(year=2024, month=1, day=i, tzinfo=None) for i in range(1, 10)]
+ dates = [
+ datetime(year=2024, month=1, day=i, tzinfo=None) for i in range(1, 10) # noqa
+ ]
@classmethod
def assign_valid_vals(cls, df: pd.DataFrame) -> pd.DataFrame:
for c in df.columns:
- check_attrs: dict = AdminPOPSchema.columns[c].checks[0].statistics
+ check_attrs = AdminPOPSchema.columns[c].checks[0].statistics
df[c] = np.random.randint(
check_attrs["min_value"], check_attrs["max_value"], df.shape[0]
)
@@ -29,7 +34,7 @@ class TestAdminPOPSchema:
return df
def test_empty(self):
- with pytest.raises(Exception):
+ with pytest.raises(pa.errors.SchemaError):
AdminPOPSchema.validate(pd.DataFrame())
def test_new_empty_df(self):
@@ -42,7 +47,7 @@ class TestAdminPOPSchema:
def test_valid(self):
# (1) Works with raw naive datetime
dates = [
- datetime(year=2024, month=1, day=i, tzinfo=None).isoformat()
+ datetime(year=2024, month=1, day=i, tzinfo=None).isoformat() # noqa
for i in range(1, 10)
]
df = pd.DataFrame(
@@ -57,7 +62,10 @@ class TestAdminPOPSchema:
assert isinstance(df, pd.DataFrame)
# (2) Works with isoformat naive datetime
- dates = [datetime(year=2024, month=1, day=i, tzinfo=None) for i in range(1, 10)]
+ dates = [
+ datetime(year=2024, month=1, day=i, tzinfo=None) # noqa
+ for i in range(1, 10)
+ ]
df = pd.DataFrame(
index=pd.MultiIndex.from_product(
iterables=[dates, self.countries], names=["index0", "index1"]
@@ -84,12 +92,12 @@ class TestAdminPOPSchema:
# Initially, they're all set with a timezone
timestmaps: list[pd.Timestamp] = [i for i in df.index.get_level_values(0)]
- assert all([ts.tz == UTC for ts in timestmaps])
+ assert all(ts.tz == UTC for ts in timestmaps)
# After validation, the timezone is removed
df = AdminPOPSchema.validate(df)
timestmaps: list[pd.Timestamp] = [i for i in df.index.get_level_values(0)]
- assert all([ts.tz is None for ts in timestmaps])
+ assert all(ts.tz is None for ts in timestmaps)
def test_index_tz_no_future_beyond_one_year(self):
now = datetime.now(tz=UTC)
@@ -123,12 +131,12 @@ class TestAdminPOPSchema:
df = self.assign_valid_vals(df)
vals = [i for i in df.index.get_level_values(1)]
- assert all([isinstance(v, float) for v in vals])
+ assert all(isinstance(v, float) for v in vals)
df = AdminPOPSchema.validate(df, lazy=True)
vals = [i for i in df.index.get_level_values(1)]
- assert all([isinstance(v, str) for v in vals])
+ assert all(isinstance(v, str) for v in vals)
# --- int to str ---
@@ -142,12 +150,12 @@ class TestAdminPOPSchema:
df = self.assign_valid_vals(df)
vals = [i for i in df.index.get_level_values(1)]
- assert all([isinstance(v, int) for v in vals])
+ assert all(isinstance(v, int) for v in vals)
df = AdminPOPSchema.validate(df, lazy=True)
vals = [i for i in df.index.get_level_values(1)]
- assert all([isinstance(v, str) for v in vals])
+ assert all(isinstance(v, str) for v in vals)
# a = 1
assert isinstance(df, pd.DataFrame)
@@ -170,7 +178,7 @@ class TestAdminPOPSchema:
assert isinstance(df, pd.DataFrame)
timestmaps: list[pd.Timestamp] = [i for i in df.index.get_level_values(0)]
- assert all([ts.tz is None for ts in timestmaps])
+ assert all(ts.tz is None for ts in timestmaps)
# (2) Timezones are removed
dates = [
@@ -187,12 +195,12 @@ class TestAdminPOPSchema:
# Has tz before validation, and none after
timestmaps: list[pd.Timestamp] = [i for i in df.index.get_level_values(0)]
- assert all([ts.tz is UTC for ts in timestmaps])
+ assert all(ts.tz is UTC for ts in timestmaps)
df = AdminPOPSchema.validate(df, lazy=True)
timestmaps: list[pd.Timestamp] = [i for i in df.index.get_level_values(0)]
- assert all([ts.tz is None for ts in timestmaps])
+ assert all(ts.tz is None for ts in timestmaps)
def test_clipping(self):
df = pd.DataFrame(