You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
2.4 KiB
Python

"""Shared test fixtures for ACE-F test suite."""
from __future__ import annotations
import json
from pathlib import Path
import pytest
FIXTURES_DIR = Path(__file__).parent / "fixtures"
def load_fixture(name: str) -> dict:
return json.loads((FIXTURES_DIR / name).read_text())
@pytest.fixture
def filing_search_fixture() -> dict:
return load_fixture("filing_search.json")
@pytest.fixture
def exhibit_content_fixture() -> dict:
return load_fixture("exhibit_content.json")
@pytest.fixture
def price_data_fixture() -> dict:
return load_fixture("price_data.json")
@pytest.fixture
def financial_data_fixture() -> dict:
return load_fixture("financial_data.json")
@pytest.fixture
def short_volume_fixture() -> dict:
return load_fixture("short_volume.json")
@pytest.fixture
def fred_observations_fixture() -> dict:
return load_fixture("fred_observations.json")
@pytest.fixture
def sample_exhibit_text() -> str:
data = load_fixture("exhibit_content.json")
return data["content"]
@pytest.fixture
def sample_parser_output() -> dict:
return {
"schema_version": "1.0.0",
"document_id": "DOC::sec::ISSUER::0000320193::2026-01-29::0000320193-26-000001",
"parser_kind": "rule",
"event_type": "earnings_release",
"event_direction": "bullish",
"event_date": "2026-01-29",
"filing_time_bucket": "post_market",
"headline": "Apple Inc. Reports First Quarter Results",
"summary": "Apple today announced financial results for its fiscal 2026 Q1.",
"guidance": {
"status": "raised",
"scope": "unknown",
"notes": "Guidance raised for Q2"
},
"signals": {
"demand_strength": "strong",
"pricing_power": "present",
"backlog_or_bookings": "present",
"customer_expansion": "present",
"margin_quality": "improving"
},
"risk_flags": {
"oneoff_item": False,
"tax_benefit": False,
"valuation_gain": False,
"non_gaap_heavy": True,
"financing_related": False,
"legal_or_regulatory_overhang": False
},
"evidence": [],
"confidence": {
"overall": 0.78,
"event_type": 0.9,
"event_direction": 0.75,
"guidance": 0.8,
"risk_flags": 0.9
},
"warnings": []
}