Skip to content

test(prose): correct a stale PR state and two issue/PR mislabels - #979

Merged
JarryShaw merged 1 commit into
mainfrom
test/719-http-still-open-pr-stale
Oct 1, 2026
Merged

JarryShaw merged 1 commit into
mainfrom
test/719-http-still-open-pr-stale

Conversation

@JarryShaw

Copy link
Copy Markdown
Owner

Please follow the guide below

What is the purpose of your pull request?

  • fix — corrects a defect
  • feat — adds a feature
  • perf — changes performance, not behaviour
  • refactor — changes neither behaviour nor performance
  • test — tests only
  • docs — documentation only
  • ci — workflows or build tooling
  • chore — anything else

Description of your pull request and other information

Found while surveying #NNN citations under tests/ for #719. Three factual errors in test prose, unrelated to the citation-style question itself (tests/** is exempt from that rule):

No behaviour change.

@JarryShaw JarryShaw added docs Pull requests that change documentation only (docs: subject prefix) review: pending No verdict for the current head - never reviewed, or the head moved since the last one test Pull requests that add or correct tests (test: subject prefix) and removed docs Pull requests that change documentation only (docs: subject prefix) labels Oct 1, 2026
Three factual errors in test prose, found while surveying #NNN
citations under tests/ for #719:

- test_http_unit.py:2356-2365 claimed PR #457 was "still-open" and
  that the SETTINGS round trip "remains unreachable until that
  lands". Both were stale: #457 merged 2026-09-18, the
  `httpv2-frame/SETTINGS` key no longer exists in
  `EXPECTED_FAILURES` (verified by importing it: 43 keys, only
  httpv2 key is PRIORITY), and the round trip itself passes
  (reproduced: `httpv2.roundtrip()` reports 'OK' for that case).
  Rewrote the paragraph: the round trip works; what still raises
  `KeyError: 'flags'` is a bare `SettingsFrame(...).pack()` with no
  enclosing packet (reproduced directly), which is an unsupported
  invocation, not a round-trip defect. Cited `FrameType.post_process`
  by name rather than the stale `httpv2.py:144` line number (the
  real raise is at `packet['flags'][name]`, confirmed by traceback).
  `GH-445` is left alone -- it is this repo's own issue shorthand,
  used throughout pcapkit/ and tests/, and #445 is in fact an issue.
- test_base_class_contract.py:45 called #547 and #570 "issues";
  both are pull requests.
- test_const_str_payload_870_unit.py:12 called #869 a "GitHub
  issue"; it is a pull request.

No behaviour or citation-style changes -- tests/** is exempt from
the #719 PR-citation rule. Ran each file individually under pytest
and plain unittest (all three use subTest): 6/6, 7/7, 60/60 passed
both ways.
@JarryShaw
JarryShaw force-pushed the test/719-http-still-open-pr-stale branch from 1a5944b to adfd210 Compare October 1, 2026 21:06
@JarryShaw JarryShaw added review: good-to-go Cross-review at the current head says ready; CI state is separate and removed review: pending No verdict for the current head - never reviewed, or the head moved since the last one labels Oct 1, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

GOOD TO GO at adfd21043 — opus cross-review, round 2. Labelled review: good-to-go.

It re-derived every claim in the rewritten paragraph from its own worktree rather than trusting the
author or me. EXPECTED_FAILURES: 43 keys, exactly one httpv2 key (httpv2-frame/PRIORITY), no
key containing SETTINGS at all. The round trip: it loaded the suite's own generator (322 cases, 10
httpv2) and ran each — httpv2-frame/SETTINGS returns status='OK', and PRIORITY is the only httpv2
failure, which is precisely its one recorded entry. The bare pack: KeyError('flags') via
schema.py:866 → httpv2.py:174. It flagged that it doubted this one, since post_process is
documented as revising data after unpacking, so it was not obvious pack calls it — it does.

It settled the dropped-pointer question with evidence I did not have, and the answer is stronger
than "harmless".
#457 is merged and #445 is closed, so the original "still-open" was false
rather than stale. More to the point, the residual KeyError is not the defect #445 described.
#445 was a nested schema failing to reach the enclosing packet's fields by name; its fix makes an
undeclared name fall through to the enclosing mapping, and the reviewer confirmed that works —
sf.pack({'flags': {...}}) succeeds, 6 octets. The bare pack fails because there is no parent at
all
, so there is nothing to fall through to. A past-tense pointer would therefore imply the
remaining error is a trace of a fixed defect, misleading exactly the reader it was meant to help. So
dropping it was right. #445 is still cited correctly in four other files.

Amend scope confirmed: 1 file, +8/−9, one paragraph; the other two files are byte-identical to round 1.

One finding independent of this PR, which I reproduced myself and am filing separately. Those three
modules pass individually but fail when run together in one process:

tests.test_base_class_contract alone          -> Ran 7 tests ... OK
the three modules in one process              -> Ran 73 tests ... FAILED (failures=1, errors=3)
pytest over the same three files              -> 73 passed, 603 subtests passed, exit 0

RegistrationGateTests.test_user_style_subclass_registers_when_it_opts_in loses
user_opt_in_dumpers. Pre-existing — it reproduces on main — and pytest reports it green, which
is the part worth knowing.

@JarryShaw
JarryShaw merged commit e544a31 into main Oct 1, 2026
63 checks passed
@JarryShaw
JarryShaw deleted the test/719-http-still-open-pr-stale branch October 1, 2026 21:33
@JarryShaw JarryShaw removed the review: good-to-go Cross-review at the current head says ready; CI state is separate label Oct 1, 2026
@JarryShaw JarryShaw added this to the 1.5 milestone Oct 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test Pull requests that add or correct tests (test: subject prefix)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant