Skip to content

Commit 6201798

Browse files
committed
ISSUE-008: Add failing test for structured kwargs encoding
- Tighten `test_all_argument_kinds_recorded_on_py_start` to require kwargs to be encoded structurally as a Sequence of (key, value) Tuples. - This codifies the intended shape for `**kwargs` discussed in ISSUE-008 and currently fails because dicts are encoded as Raw.
1 parent 24daf32 commit 6201798

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

codetracer-python-recorder/test/test_monitoring_events.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -266,9 +266,15 @@ def arg_value(i: int) -> Dict[str, Any]:
266266
r = varargs_val.get("r", "")
267267
assert "30" in r and "40" in r
268268

269-
# Kwargs presence is sufficient; encoding may vary by backend
269+
# Kwargs must be encoded structurally as a sequence of (key, value) tuples
270270
kwargs_val = name_to_val["kwargs"]
271-
assert isinstance(kwargs_val, dict) and "kind" in kwargs_val
272-
if kwargs_val.get("kind") == "Raw":
273-
r = kwargs_val.get("r", "")
274-
assert "k" in r and "60" in r
271+
assert kwargs_val.get("kind") == "Sequence", f"Expected structured kwargs encoding, got: {kwargs_val}"
272+
elements = kwargs_val.get("elements")
273+
assert isinstance(elements, list) and len(elements) == 1, f"Expected single kwargs pair, got: {elements}"
274+
pair = elements[0]
275+
assert pair.get("kind") == "Tuple", f"Expected key/value tuple, got: {pair}"
276+
kv = pair.get("elements")
277+
assert isinstance(kv, list) and len(kv) == 2, f"Expected 2-tuple for kwargs item, got: {kv}"
278+
key_rec, val_rec = kv[0], kv[1]
279+
assert key_rec.get("kind") == "String" and key_rec.get("text") == "k", f"Unexpected kwargs key encoding: {key_rec}"
280+
assert val_rec.get("kind") == "Int" and int(val_rec.get("i")) == 60, f"Unexpected kwargs value encoding: {val_rec}"

0 commit comments

Comments
 (0)