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
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": []
|
|
}
|