paper-trail-api / tests /conftest.py
Hoe
Deploying Backend API
b339b93
"""Shared pytest fixtures for Paper Trail API tests."""
import pytest
@pytest.fixture
def sample_contribution_row() -> dict:
"""Sample contribution row matching DIME schema."""
return {
"cycle": 2024,
"transaction.id": "TEST123",
"transaction.type": "15",
"amount": 500.00,
"date": "2024-06-15",
"bonica.cid": "CID123",
"contributor.name": "John Doe",
"contributor.type": "I",
"contributor.state": "CA",
"contributor.occupation": "Engineer",
"contributor.employer": "Tech Corp",
"contributor.cfscore": -0.5,
"bonica.rid": "RID456",
"recipient.name": "Jane Smith",
"recipient.party": "100",
"recipient.type": "CAND",
"recipient.state": "CA",
"candidate.cfscore": -0.3,
"seat": "federal:senate",
"election.type": "G",
"occ.standardized": "ENGINEERING",
}
@pytest.fixture
def sample_rows() -> list[dict]:
"""Multiple sample rows for testing filters."""
return [
{
"cycle": 2024,
"amount": 1000.00,
"date": "2024-01-15",
"contributor.state": "CA",
"recipient.state": "CA",
"seat": "federal:senate",
},
{
"cycle": 2022,
"amount": 250.00,
"date": "2022-06-20",
"contributor.state": "NY",
"recipient.state": "NY",
"seat": "federal:house",
},
{
"cycle": 2020,
"amount": 5000.00,
"date": "2020-03-10",
"contributor.state": "TX",
"recipient.state": "TX",
"seat": "state:governor",
},
{
"cycle": 2024,
"amount": 50.00,
"date": "2024-09-01",
"contributor.state": "FL",
"recipient.state": "FL",
"seat": "federal:house",
},
]
@pytest.fixture
def temp_duckdb_path(tmp_path):
"""Temporary DuckDB database path for testing."""
return tmp_path / "test.duckdb"