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.
- {skilltest_pytest-0.6.0 → skilltest_pytest-0.7.0}/PKG-INFO +4 -4
- {skilltest_pytest-0.6.0 → skilltest_pytest-0.7.0}/README.md +2 -2
- {skilltest_pytest-0.6.0 → skilltest_pytest-0.7.0}/pyproject.toml +2 -2
- {skilltest_pytest-0.6.0 → skilltest_pytest-0.7.0}/skilltest_pytest/__init__.py +2 -0
- {skilltest_pytest-0.6.0 → skilltest_pytest-0.7.0}/tests/test_plugin.py +4 -2
- {skilltest_pytest-0.6.0 → skilltest_pytest-0.7.0}/uv.lock +2 -2
- {skilltest_pytest-0.6.0 → skilltest_pytest-0.7.0}/.gitignore +0 -0
- {skilltest_pytest-0.6.0 → skilltest_pytest-0.7.0}/project.json +0 -0
- {skilltest_pytest-0.6.0 → skilltest_pytest-0.7.0}/skilltest_pytest/plugin.py +0 -0
- {skilltest_pytest-0.6.0 → skilltest_pytest-0.7.0}/tests/collected/deploy.skilltest.yaml +0 -0
- {skilltest_pytest-0.6.0 → skilltest_pytest-0.7.0}/tests/collected/deployer/SKILL.md +0 -0
- {skilltest_pytest-0.6.0 → skilltest_pytest-0.7.0}/tests/collected/greet.skilltest.yaml +0 -0
- {skilltest_pytest-0.6.0 → skilltest_pytest-0.7.0}/tests/collected/greeter/SKILL.md +0 -0
- {skilltest_pytest-0.6.0 → skilltest_pytest-0.7.0}/tests/conftest.py +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: skilltest-pytest
|
|
3
|
-
Version: 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.
|
|
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`
|
|
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`
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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(
|
|
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.
|
|
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.
|
|
219
|
+
version = "0.7.0"
|
|
220
220
|
source = { editable = "../../sdks/python" }
|
|
221
221
|
dependencies = [
|
|
222
222
|
{ name = "pydantic" },
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|