Skip to content

Commit 72c71a7

Browse files
committed
✅ (scripts): Test exact-pin operator enforcement
1 parent c7f5937 commit 72c71a7

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

scripts/test_generate_example_metadata.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,5 +219,46 @@ def test_ignores_runtime_subpackage_and_org_path(self) -> None:
219219
self.assertEqual(gen.audit(self.root, self.versions), [])
220220

221221

222+
class PythonPinOperatorTests(_RepoTestCase):
223+
def test_audit_flags_non_exact_operator(self) -> None:
224+
# Correct version, floor operator: the version-drift audit is clean, but
225+
# the operator policy is violated (AAASM-4704).
226+
_in_sync_tree(self.root)
227+
_write(
228+
self.root,
229+
"python/ex/pyproject.toml",
230+
'dependencies = [\n "agent-assembly>=0.0.1rc5",\n]\n',
231+
)
232+
problems = gen.audit(self.root, self.versions)
233+
self.assertEqual(len(problems), 1)
234+
self.assertIn("python/ex/pyproject.toml:2", problems[0])
235+
self.assertIn("operator", problems[0])
236+
237+
def test_audit_passes_on_exact_operator(self) -> None:
238+
_in_sync_tree(self.root) # every python pin is ``==``
239+
self.assertEqual(gen.audit(self.root, self.versions), [])
240+
241+
def test_operator_exemption_is_honored(self) -> None:
242+
_in_sync_tree(self.root)
243+
_write(
244+
self.root,
245+
"python/ex/pyproject.toml",
246+
'dependencies = [\n "agent-assembly>=0.0.1rc5",'
247+
" # sdk-version-exempt\n]\n",
248+
)
249+
self.assertEqual(gen.audit(self.root, self.versions), [])
250+
251+
def test_rewriter_normalizes_operator_to_exact(self) -> None:
252+
path = _write(
253+
self.root,
254+
"python/ex/pyproject.toml",
255+
'dependencies = [\n "agent-assembly>=0.0.1rc3",\n]\n',
256+
)
257+
changed = gen.rewrite_python_manifest(path, self.versions.python)
258+
self.assertTrue(changed)
259+
self.assertIn('"agent-assembly==0.0.1rc5"', path.read_text())
260+
self.assertNotIn(">=", path.read_text())
261+
262+
222263
if __name__ == "__main__":
223264
unittest.main()

0 commit comments

Comments
 (0)