Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5,301 changes: 5,301 additions & 0 deletions tests/fixtures/parity_gate/10-K/0000927356-01-000369.html

Large diffs are not rendered by default.

560 changes: 560 additions & 0 deletions tests/fixtures/parity_gate/10-K/0001193125-21-101193.html

Large diffs are not rendered by default.

37,889 changes: 37,889 additions & 0 deletions tests/fixtures/parity_gate/20-F/0001144204-10-017467.html

Large diffs are not rendered by default.

19 changes: 7 additions & 12 deletions tests/issues/regression/test_3dp_bare_textnode_headers.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@
121 corpus fixtures, it was the only remaining behavioural difference between
``.items`` with the legacy path and without it.

CORPUS NOTE. The 20-F asserted here lives in ``tests/fixtures/parity_gate``, which
is tracked, so this test runs in CI. Its 10-K twin (``0000927356-01-000369``) is
in ``tests/fixtures/text_boundary_corpus``, which is gitignored — asserting on
that one alone would make this test skip in CI while passing locally, which is how
parity evidence was lost before. It is checked opportunistically below.
CORPUS NOTE. Both filings asserted here live in ``tests/fixtures/parity_gate``,
which is tracked, so this test runs in CI. The 10-K twin (``0000927356-01-000369``)
was copied there from the gitignored ``text_boundary_corpus`` on 2026-10-02: while
it lived only there its test skipped in CI, and a sibling test on that corpus went
stale for five days without anyone seeing it.
"""
import pathlib

Expand All @@ -33,8 +33,7 @@

FIXTURES = pathlib.Path(__file__).parent.parent.parent / "fixtures"
TRACKED_20F = FIXTURES / "parity_gate" / "20-F" / "0000928385-01-500187.html"
IGNORED_10K = (FIXTURES / "text_boundary_corpus" / "e1_1996_2001" / "10-K"
/ "0000927356-01-000369.html")
TRACKED_10K = FIXTURES / "parity_gate" / "10-K" / "0000927356-01-000369.html"


class FixtureFiling:
Expand Down Expand Up @@ -100,12 +99,8 @@ def test_the_20f_document_really_has_no_block_structure():
assert not [n for n in nodes if isinstance(n, ParagraphNode)]


@pytest.mark.skipif(
not IGNORED_10K.exists(),
reason="text_boundary_corpus is gitignored; present on developer machines only",
)
def test_2001_10k_finds_item_7_without_the_legacy_parser():
filing = FixtureFiling(IGNORED_10K, "10-K")
filing = FixtureFiling(TRACKED_10K, "10-K")

assert TenK(filing).items == ["Item 7"]
assert _without_legacy(TenK)(filing).items == ["Item 7"]
8 changes: 2 additions & 6 deletions tests/issues/regression/test_dt1f1_item_9at.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@

FIXTURES = pathlib.Path(__file__).parent.parent.parent / "fixtures"
GATE_10K = FIXTURES / "parity_gate" / "10-K" / "0001193125-10-073212.html"
ABS_10K = (FIXTURES / "text_boundary_corpus" / "e5_2020_2026" / "10-K"
/ "0001193125-21-101193.html")
# Copied from the gitignored text_boundary_corpus on 2026-10-02 so this runs in CI
ABS_10K = FIXTURES / "parity_gate" / "10-K" / "0001193125-21-101193.html"


class FixtureFiling:
Expand Down Expand Up @@ -163,10 +163,6 @@ def test_the_designation_is_one_letter_and_optional():
assert not re.fullmatch(_ITEM_SEP, "(T). Controls and Procedures")


@pytest.mark.skipif(
not ABS_10K.exists(),
reason="text_boundary_corpus is gitignored; present on developer machines only",
)
def test_a_regulation_ab_sub_number_does_not_become_an_item():
"""The asset-backed issuer filing must not gain items from this change.

Expand Down
20 changes: 7 additions & 13 deletions tests/issues/regression/test_dt1f1_wrapped_item_headers.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,11 @@
extraction boundary moved: verify what the section now contains before updating
it, rather than re-recording the new number.

CORPUS NOTE. The 20-F and 10-K asserted unconditionally live in
``tests/fixtures/parity_gate``, which is tracked, so this test runs in CI. The
2010 20-F that carries five of the eight lookups is in
``tests/fixtures/text_boundary_corpus``, which is gitignored — anchoring only on
that one would pass locally and skip in CI, which is how parity evidence has
been lost here before. It is checked opportunistically at the bottom.
CORPUS NOTE. Every filing asserted here lives in ``tests/fixtures/parity_gate``,
which is tracked, so this test runs in CI. The 2010 20-F that carries five of the
eight lookups was copied there from the gitignored ``text_boundary_corpus`` on
2026-10-02, after its test skipped in CI and went stale for five days (#1361
changed three item lengths and only the CI-visible pins were updated).
"""
import pathlib
import re
Expand All @@ -50,8 +49,7 @@
FIXTURES = pathlib.Path(__file__).parent.parent.parent / "fixtures"
TRACKED_20F = FIXTURES / "parity_gate" / "20-F" / "0001062993-16-008650.html"
TRACKED_10K = FIXTURES / "parity_gate" / "10-K" / "0000950153-99-001234.html"
IGNORED_20F = (FIXTURES / "text_boundary_corpus" / "e3_2009_2014" / "20-F"
/ "0001144204-10-017467.html")
WRAPPED_20F = FIXTURES / "parity_gate" / "20-F" / "0001144204-10-017467.html"


class FixtureFiling:
Expand Down Expand Up @@ -186,10 +184,6 @@ def test_a_bare_item_number_is_not_read_as_a_page_number():
)


@pytest.mark.skipif(
not IGNORED_20F.exists(),
reason="text_boundary_corpus is gitignored; present on developer machines only",
)
def test_2010_20f_resolves_all_eight_wrapped_items_without_the_legacy_parser():
"""The filing this defect was measured on.

Expand All @@ -198,7 +192,7 @@ def test_2010_20f_resolves_all_eight_wrapped_items_without_the_legacy_parser():
line width. Five of these (5, 6, 11, 12, 15) are on the dt1f.1 work list;
16D-16F came with them.
"""
filing = FixtureFiling(IGNORED_20F, "20-F")
filing = FixtureFiling(WRAPPED_20F, "20-F")
report = _without_legacy(TwentyF)(filing)

# Items 5 and 6 grew by 150 and 20 characters when the fast_table 8-column cap
Expand Down
6 changes: 6 additions & 0 deletions tests/meta/test_section_parity_ratchet.py
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,12 @@
# item-separator fix was measured on (TenK.items == ['Item 8'] before
# it), so it guards two fixes at once and must stay measurable.
("10-K", "0001376474-16-000635"),
# Copied into parity_gate on 2026-10-02 because regression tests assert
# on them (3dp, dt1f1 9A(T), dt1f1 wrapped headers) and, read from the
# era corpus, those tests skipped in CI; one went stale for five days.
("10-K", "0000927356-01-000369"),
("10-K", "0001193125-21-101193"),
("20-F", "0001144204-10-017467"),
}
)

Expand Down
Loading