46 lines
1.7 KiB
Python
46 lines
1.7 KiB
Python
from admin_analytics.irs990.loader import load_filing, load_part_vii, load_schedule_j
|
|
|
|
|
|
def test_load_filing(db_conn, fixtures_dir):
|
|
xml_path = fixtures_dir / "990_sample.xml"
|
|
assert load_filing(db_conn, xml_path, "TEST001")
|
|
|
|
row = db_conn.execute(
|
|
"SELECT ein, tax_year, organization_name, total_expenses FROM raw_990_filing WHERE object_id = 'TEST001'"
|
|
).fetchone()
|
|
assert row[0] == "516000297"
|
|
assert row[1] == 2022
|
|
assert row[2] == "UNIVERSITY OF DELAWARE"
|
|
assert row[3] == 1700000000
|
|
|
|
|
|
def test_load_filing_idempotent(db_conn, fixtures_dir):
|
|
xml_path = fixtures_dir / "990_sample.xml"
|
|
load_filing(db_conn, xml_path, "TEST001")
|
|
load_filing(db_conn, xml_path, "TEST001") # second load should overwrite
|
|
count = db_conn.execute(
|
|
"SELECT COUNT(*) FROM raw_990_filing WHERE object_id = 'TEST001'"
|
|
).fetchone()[0]
|
|
assert count == 1
|
|
|
|
|
|
def test_load_part_vii(db_conn, fixtures_dir):
|
|
xml_path = fixtures_dir / "990_sample.xml"
|
|
count = load_part_vii(db_conn, xml_path, "TEST001")
|
|
assert count == 3
|
|
|
|
rows = db_conn.execute(
|
|
"SELECT person_name, reportable_comp_from_org FROM raw_990_part_vii WHERE object_id = 'TEST001' ORDER BY reportable_comp_from_org DESC"
|
|
).fetchall()
|
|
assert rows[0] == ("JOHN DOE", 850000)
|
|
|
|
|
|
def test_load_schedule_j(db_conn, fixtures_dir):
|
|
xml_path = fixtures_dir / "990_sample.xml"
|
|
count = load_schedule_j(db_conn, xml_path, "TEST001")
|
|
assert count == 2
|
|
|
|
row = db_conn.execute(
|
|
"SELECT person_name, base_compensation, total_compensation FROM raw_990_schedule_j WHERE object_id = 'TEST001' AND person_name = 'JOHN DOE'"
|
|
).fetchone()
|
|
assert row == ("JOHN DOE", 700000, 950000)
|