skilltest-pytest 0.6.0__tar.gz → 0.7.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skilltest-pytest
3
- Version: 0.6.0
3
+ Version: 0.7.0
4
4
  Summary: pytest integration for skilltest: auto-collect *.skilltest.yaml cases as pytest tests, built on skilltest-sdk.
5
5
  Author: Nick DeRobertis
6
6
  License-Expression: MIT
7
7
  Requires-Python: >=3.12
8
8
  Requires-Dist: pytest>=8
9
- Requires-Dist: skilltest-sdk==0.6.0
9
+ Requires-Dist: skilltest-sdk==0.7.0
10
10
  Description-Content-Type: text/markdown
11
11
 
12
12
  # skilltest-pytest
@@ -40,8 +40,8 @@ def test_greeter():
40
40
  ```
41
41
 
42
42
  Multi-turn cases add `user(...)`; deterministic call-count checks use `called` /
43
- `not_called` referencing a named `stub`/`spy` (or the mock objects' own
44
- assertions — see below). `run_skill` also takes `platforms=`/`models=` to fan a
43
+ `not_called` taking the `stub`/`spy` object itself or a name you gave it (or
44
+ use the mock objects' own assertions — see below). `run_skill` also takes `platforms=`/`models=` to fan a
45
45
  case across a matrix.
46
46
 
47
47
  ## Or point at a YAML file
@@ -29,8 +29,8 @@ def test_greeter():
29
29
  ```
30
30
 
31
31
  Multi-turn cases add `user(...)`; deterministic call-count checks use `called` /
32
- `not_called` referencing a named `stub`/`spy` (or the mock objects' own
33
- assertions — see below). `run_skill` also takes `platforms=`/`models=` to fan a
32
+ `not_called` taking the `stub`/`spy` object itself or a name you gave it (or
33
+ use the mock objects' own assertions — see below). `run_skill` also takes `platforms=`/`models=` to fan a
34
34
  case across a matrix.
35
35
 
36
36
  ## Or point at a YAML file
@@ -1,13 +1,13 @@
1
1
  [project]
2
2
  name = "skilltest-pytest"
3
- version = "0.6.0"
3
+ version = "0.7.0"
4
4
  description = "pytest integration for skilltest: auto-collect *.skilltest.yaml cases as pytest tests, built on skilltest-sdk."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
7
7
  license = "MIT"
8
8
  authors = [{ name = "Nick DeRobertis" }]
9
9
  dependencies = [
10
- "skilltest-sdk==0.6.0",
10
+ "skilltest-sdk==0.7.0",
11
11
  "pytest>=8",
12
12
  ]
13
13
 
@@ -33,6 +33,7 @@ from skilltest_sdk import (
33
33
  Matcher,
34
34
  Message,
35
35
  MockCall,
36
+ MockRefEval,
36
37
  NumericDetail,
37
38
  Report,
38
39
  SimulatedUser,
@@ -86,6 +87,7 @@ __all__ = [
86
87
  "Matcher",
87
88
  "Message",
88
89
  "MockCall",
90
+ "MockRefEval",
89
91
  "NumericDetail",
90
92
  "Report",
91
93
  "SimulatedUser",
@@ -138,12 +138,14 @@ def test_full_code_defined_case_surface_is_reexported(fixtures: Path) -> None:
138
138
  assert report.passed, describe_failures(report)
139
139
  assert report.runs[0].turns == 2
140
140
 
141
- push = stub(pattern=r"git push( --force)?\b", output="Everything up-to-date", name="push")
141
+ # The eval references the stub by object — no name to keep in sync — and
142
+ # the reference resolves through the plugin's re-export and streaming path.
143
+ push = stub(pattern=r"git push( --force)?\b", output="Everything up-to-date")
142
144
  mocked = TestCase(
143
145
  skill=fixtures / "skills" / "deployer",
144
146
  input="Deploy the app",
145
147
  mocks=[push],
146
- evals=[called("push", times=1)],
148
+ evals=[called(push, times=1)],
147
149
  )
148
150
  stream = stream_skill(mocked)
149
151
 
@@ -189,7 +189,7 @@ wheels = [
189
189
 
190
190
  [[package]]
191
191
  name = "skilltest-pytest"
192
- version = "0.6.0"
192
+ version = "0.7.0"
193
193
  source = { editable = "." }
194
194
  dependencies = [
195
195
  { name = "pytest" },
@@ -216,7 +216,7 @@ dev = [
216
216
 
217
217
  [[package]]
218
218
  name = "skilltest-sdk"
219
- version = "0.6.0"
219
+ version = "0.7.0"
220
220
  source = { editable = "../../sdks/python" }
221
221
  dependencies = [
222
222
  { name = "pydantic" },