Skip to content

Commit 5b14fca

Browse files
committed
test(consistent): harden DPA3 case builders\n\nDeep-copy the DPA3 baseline case and validate override keys in the\ncurated-case helpers so mutable fields do not leak across cases and\ntypos fail fast.\n\nAuthored by OpenClaw (model: gpt-5.4)
1 parent e829920 commit 5b14fca

1 file changed

Lines changed: 14 additions & 4 deletions

File tree

source/tests/consistent/descriptor/test_dpa3.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# SPDX-License-Identifier: LGPL-3.0-or-later
22
import unittest
3+
from copy import (
4+
deepcopy,
5+
)
36
from typing import (
47
Any,
58
)
@@ -100,9 +103,17 @@
100103
}
101104

102105

106+
def _build_dpa3_case(fields: tuple[str, ...], **overrides: Any) -> tuple:
107+
unknown = set(overrides) - set(DPA3_BASELINE_CASE)
108+
if unknown:
109+
raise KeyError(f"Unknown DPA3 case override(s): {sorted(unknown)}")
110+
case = deepcopy(DPA3_BASELINE_CASE)
111+
case.update(overrides)
112+
return tuple(case[field] for field in fields)
113+
114+
103115
def dpa3_case(**overrides: Any) -> tuple:
104-
case = DPA3_BASELINE_CASE | overrides
105-
return tuple(case[field] for field in DPA3_CASE_FIELDS)
116+
return _build_dpa3_case(DPA3_CASE_FIELDS, **overrides)
106117

107118

108119
DPA3_CURATED_CASES = (
@@ -139,8 +150,7 @@ def dpa3_case(**overrides: Any) -> tuple:
139150

140151

141152
def dpa3_descriptor_api_case(**overrides: Any) -> tuple:
142-
case = DPA3_BASELINE_CASE | overrides
143-
return tuple(case[field] for field in DPA3_DESCRIPTOR_API_CASE_FIELDS)
153+
return _build_dpa3_case(DPA3_DESCRIPTOR_API_CASE_FIELDS, **overrides)
144154

145155

146156
DPA3_DESCRIPTOR_API_CURATED_CASES = (

0 commit comments

Comments
 (0)