Skip to content

Commit 3669e65

Browse files
kurodo3[bot]claude
andcommitted
fix(test): use public API in async regression test; fix PS3 metadata order (ITL-616)
Switch test_async_three_fetches_no_content_hash_leak to call src.keys() and src.output_schema() instead of accessing the private _accumulated_stream attribute. Also reorder PS3 metadata block in DESIGN_ISSUES.md to match the file-wide convention (Status, Severity, Issue then Fix at end of body). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 7cbad19 commit 3669e65

2 files changed

Lines changed: 3 additions & 7 deletions

File tree

DESIGN_ISSUES.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,6 @@ lock before iterating, so later writes to the stream don't affect the snapshot m
126126

127127
### PS3 — `_combine` leaks `_content_hash` into the data schema on the second accumulating fetch
128128
**Status:** resolved
129-
**Fix:** Added `_STREAM_COMBINE_COLUMNS = ColumnConfig(system_tags=True, source=True, context=True)` constant and replaced `as_table(all_info=True)` with `as_table(columns=_STREAM_COMBINE_COLUMNS)` in `_combine`. `content_hash` is intentionally excluded — it is a synthetic output column, never a stored one.
130129
**Severity:** high
131130
**Issue:** ITL-616
132131

@@ -147,9 +146,7 @@ On the next `_combine` call, `_validate_combining_schemas` compares:
147146
This raises `SchemaInconsistencyError`. A polling source emitting one new row per poll will
148147
change its data schema on the second new-data poll and crash on the third.
149148

150-
**Fix:** Replace `all_info=True` with a named module-level constant
151-
`_STREAM_COMBINE_COLUMNS = ColumnConfig(system_tags=True, source=True, context=True)`.
152-
`content_hash` is intentionally absent — it is a synthetic output column, never a stored one.
149+
**Fix:** Added `_STREAM_COMBINE_COLUMNS = ColumnConfig(system_tags=True, source=True, context=True)` constant and replaced `as_table(all_info=True)` with `as_table(columns=_STREAM_COMBINE_COLUMNS)` in `_combine`. `content_hash` is intentionally excluded — it is a synthetic output column, never a stored one.
153150

154151
---
155152

tests/test_channels/test_polling_source.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1129,12 +1129,11 @@ async def test_async_three_fetches_no_content_hash_leak(self):
11291129
items.append((tag, data))
11301130

11311131
assert len(items) == 3
1132-
assert src._accumulated_stream is not None
11331132

1134-
_, data_keys = src._accumulated_stream.keys()
1133+
_, data_keys = src.keys()
11351134
assert "_content_hash" not in data_keys
11361135

1137-
_, data_schema = src._accumulated_stream.output_schema()
1136+
_, data_schema = src.output_schema()
11381137
assert "_content_hash" not in data_schema
11391138

11401139

0 commit comments

Comments
 (0)