assertion-cli 0.5.3__tar.gz → 0.5.4__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.
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/PKG-INFO +1 -1
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/assertion_cli.egg-info/PKG-INFO +1 -1
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/main.py +34 -1
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/pyproject.toml +1 -1
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/tests/test_api.py +1 -1
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/tests/test_main.py +28 -1
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/README.md +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/api.py +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/assertion_cli.egg-info/SOURCES.txt +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/assertion_cli.egg-info/dependency_links.txt +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/assertion_cli.egg-info/entry_points.txt +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/assertion_cli.egg-info/requires.txt +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/assertion_cli.egg-info/top_level.txt +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/bundle.py +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/git.py +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/link.py +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/models.py +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/session.py +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/setup.cfg +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/templates/ACTIVATION.md +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/templates/SKILL.md +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/templates/__init__.py +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/tests/test_bundle.py +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/tests/test_decision.py +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/tests/test_git.py +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/tests/test_init.py +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/tests/test_link.py +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/tests/test_prompt.py +0 -0
- {assertion_cli-0.5.3 → assertion_cli-0.5.4}/tests/test_session.py +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import base64
|
|
2
|
+
import importlib.metadata
|
|
2
3
|
import importlib.resources
|
|
3
4
|
import json
|
|
4
5
|
import re
|
|
@@ -8,6 +9,27 @@ from pathlib import Path
|
|
|
8
9
|
import httpx
|
|
9
10
|
import typer
|
|
10
11
|
|
|
12
|
+
|
|
13
|
+
_VERSION: str | None = None
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _get_version() -> str:
|
|
17
|
+
global _VERSION
|
|
18
|
+
if _VERSION is not None:
|
|
19
|
+
return _VERSION
|
|
20
|
+
try:
|
|
21
|
+
_VERSION = importlib.metadata.version("assertion-cli")
|
|
22
|
+
except importlib.metadata.PackageNotFoundError:
|
|
23
|
+
pyproject = Path(__file__).resolve().parent / "pyproject.toml"
|
|
24
|
+
if pyproject.exists():
|
|
25
|
+
import tomllib
|
|
26
|
+
|
|
27
|
+
data = tomllib.loads(pyproject.read_text(encoding="utf-8"))
|
|
28
|
+
_VERSION = data["project"]["version"]
|
|
29
|
+
else:
|
|
30
|
+
_VERSION = "0.0.0"
|
|
31
|
+
return _VERSION
|
|
32
|
+
|
|
11
33
|
from api import AssertionClient
|
|
12
34
|
from bundle import build_bundle
|
|
13
35
|
from git import (
|
|
@@ -52,8 +74,19 @@ def render_checkpoint_response(resp: CheckpointResponse) -> str:
|
|
|
52
74
|
|
|
53
75
|
|
|
54
76
|
@app.callback(invoke_without_command=True)
|
|
55
|
-
def main(
|
|
77
|
+
def main(
|
|
78
|
+
ctx: typer.Context,
|
|
79
|
+
version: bool = typer.Option(
|
|
80
|
+
False,
|
|
81
|
+
"--version",
|
|
82
|
+
"-v",
|
|
83
|
+
help="Show version and exit.",
|
|
84
|
+
),
|
|
85
|
+
) -> None:
|
|
56
86
|
"""Assertion command group."""
|
|
87
|
+
if version:
|
|
88
|
+
typer.echo(f"assertion-cli {_get_version()}")
|
|
89
|
+
raise typer.Exit()
|
|
57
90
|
if ctx.invoked_subcommand is None:
|
|
58
91
|
typer.echo(ctx.get_help())
|
|
59
92
|
raise typer.Exit(code=0)
|
|
@@ -22,7 +22,7 @@ def test_client_init() -> None:
|
|
|
22
22
|
200,
|
|
23
23
|
json={
|
|
24
24
|
"session_id": "s-99",
|
|
25
|
-
"stacks": [{"id": "stack-1", "name": "Browser", "description": "desc"}],
|
|
25
|
+
"stacks": [{"id": "stack-1", "name": "Browser", "description": "desc", "repo": "owner/repo"}],
|
|
26
26
|
},
|
|
27
27
|
)
|
|
28
28
|
)
|
|
@@ -4,9 +4,14 @@ import base64
|
|
|
4
4
|
|
|
5
5
|
import httpx
|
|
6
6
|
from _pytest.monkeypatch import MonkeyPatch
|
|
7
|
+
from typer.testing import CliRunner
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
import main
|
|
9
10
|
from main import _decode_screenshot, _write_screenshots, render_checkpoint_response
|
|
11
|
+
from models import CheckpointResponse, ReviewDetail
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
runner = CliRunner()
|
|
10
15
|
|
|
11
16
|
|
|
12
17
|
def test_decode_screenshot_data_uri() -> None:
|
|
@@ -80,3 +85,25 @@ def test_render_checkpoint_response() -> None:
|
|
|
80
85
|
assert "checkpoint_id: cp-1" in output
|
|
81
86
|
assert "outcome: failed" in output
|
|
82
87
|
assert "Needs work" in output
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def test_version_long_flag(monkeypatch: MonkeyPatch) -> None:
|
|
91
|
+
monkeypatch.setattr(main, "_get_version", lambda: "1.2.3")
|
|
92
|
+
result = runner.invoke(main.app, ["--version"])
|
|
93
|
+
assert result.exit_code == 0
|
|
94
|
+
assert "assertion-cli 1.2.3" in result.stdout
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
def test_version_short_flag(monkeypatch: MonkeyPatch) -> None:
|
|
98
|
+
monkeypatch.setattr(main, "_get_version", lambda: "1.2.3")
|
|
99
|
+
result = runner.invoke(main.app, ["-v"])
|
|
100
|
+
assert result.exit_code == 0
|
|
101
|
+
assert "assertion-cli 1.2.3" in result.stdout
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def test_version_not_confused_with_help(monkeypatch: MonkeyPatch) -> None:
|
|
105
|
+
"""--version should exit with version string, not show help."""
|
|
106
|
+
monkeypatch.setattr(main, "_get_version", lambda: "1.2.3")
|
|
107
|
+
result = runner.invoke(main.app, ["--version"])
|
|
108
|
+
assert result.exit_code == 0
|
|
109
|
+
assert result.stdout.strip() == "assertion-cli 1.2.3"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|