| 16 | |
| 17 | |
| 18 | class EarningsTests(unittest.TestCase): |
| 19 | def test_minimal(self): |
| 20 | e = Earnings( |
| 21 | as_of=_now(), |
| 22 | source=_src(), |
| 23 | ticker="AAPL", |
| 24 | period="2026Q1", |
| 25 | ) |
| 26 | self.assertEqual(e.item_type, "earnings") |
| 27 | self.assertIsNone(e.revenue) |
| 28 | self.assertEqual(e.surprise_flags, []) |
| 29 | |
| 30 | def test_full(self): |
| 31 | e = Earnings( |
| 32 | as_of=_now(), |
| 33 | source=_src(), |
| 34 | ticker="AAPL", |
| 35 | period="2026Q1", |
| 36 | revenue=120.0, |
| 37 | eps=1.55, |
| 38 | guidance="Raised FY revenue guide", |
| 39 | surprise_flags=["eps_beat", "revenue_beat"], |
| 40 | transcript_quote="Demand remains robust ...", |
| 41 | ) |
| 42 | self.assertEqual(e.revenue, 120.0) |
| 43 | self.assertEqual(e.surprise_flags, ["eps_beat", "revenue_beat"]) |
| 44 | |
| 45 | def test_retrieval_projection_is_not_a_domain_method(self): |
| 46 | e = Earnings( |
| 47 | as_of=_now(), |
| 48 | source=_src(), |
| 49 | ticker="AAPL", |
| 50 | period="2026Q1", |
| 51 | guidance="Raised FY guide", |
| 52 | ) |
| 53 | self.assertFalse(hasattr(e, "embedding_text")) |
| 54 | |
| 55 | |
| 56 | if __name__ == "__main__": |
| 57 | unittest.main() |
nothing calls this directly
no outgoing calls
no test coverage detected