asana-api-cli 3.3.0__tar.gz → 3.3.1__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.
- {asana_api_cli-3.3.0/src/asana_api_cli.egg-info → asana_api_cli-3.3.1}/PKG-INFO +1 -1
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/pyproject.toml +1 -1
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/cli.py +1 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1/src/asana_api_cli.egg-info}/PKG-INFO +1 -1
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_cli_invocation.py +6 -2
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_cli_surface.py +7 -4
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_generate_python_snapshots.py +1 -1
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/LICENSE +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/README.md +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/setup.cfg +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/__init__.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/click_ext.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/codegen.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/formatter.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/multibyte_filename.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/redactor.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/session.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/structured_arg.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/version.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli.egg-info/SOURCES.txt +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli.egg-info/dependency_links.txt +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli.egg-info/entry_points.txt +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli.egg-info/requires.txt +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli.egg-info/top_level.txt +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_cli.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_click_ext.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_codegen.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_formatter.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_generate_python.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_multibyte_filename.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_py310_compat.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_redactor.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_sdk_boilerplate.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_session.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_structured_arg.py +0 -0
- {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_version.py +0 -0
|
@@ -225,6 +225,7 @@ def _humanize_class_name(name: str) -> str:
|
|
|
225
225
|
_GROUP_DESCRIPTIONS: dict[str, str] = {
|
|
226
226
|
"AccessRequests": "Manage private-object access requests",
|
|
227
227
|
"Agents": "Read workspace AI agents (AI Teammates)",
|
|
228
|
+
"AIStudioUsageAPI": "Read AI Studio credit usage and seats",
|
|
228
229
|
"Allocations": "Manage user allocations across projects",
|
|
229
230
|
"Attachments": "Upload, list, and remove file attachments",
|
|
230
231
|
"AuditLogAPI": "Read domain audit log events",
|
|
@@ -231,7 +231,9 @@ class TestV3PrimaryFlags:
|
|
|
231
231
|
mock = _patch(monkeypatch, "TasksApi", "get_tasks", return_value=_page([]))
|
|
232
232
|
result = make_runner().invoke(cmd, ["--paginate"])
|
|
233
233
|
assert result.exit_code != 0
|
|
234
|
-
|
|
234
|
+
output = full_output(result)
|
|
235
|
+
assert "No such option" in output
|
|
236
|
+
assert "--paginate" in output
|
|
235
237
|
assert mock.call_count == 0
|
|
236
238
|
|
|
237
239
|
|
|
@@ -1070,7 +1072,9 @@ class TestErrorPathExitCodes:
|
|
|
1070
1072
|
["--exception-query", ".exception", "get-task", "--task", "T1"],
|
|
1071
1073
|
)
|
|
1072
1074
|
assert result.exit_code == 2, full_output(result)
|
|
1073
|
-
|
|
1075
|
+
output = full_output(result)
|
|
1076
|
+
assert "No such option" in output
|
|
1077
|
+
assert "--exception-query" in output
|
|
1074
1078
|
|
|
1075
1079
|
def test_query_invalid_jq_on_success_exits_2(self, monkeypatch: pytest.MonkeyPatch) -> None:
|
|
1076
1080
|
cmd = _build_command("TasksApi", "get_task")
|
|
@@ -4,7 +4,9 @@ The CLI is built dynamically from whatever ``asana`` SDK version is installed,
|
|
|
4
4
|
so a bump of the ``asana`` dependency can silently change every command.
|
|
5
5
|
This test pins the surface to ``tests/fixtures/cli_surface.json``: any
|
|
6
6
|
addition, removal, rename, or signature change shows up as a fixture diff
|
|
7
|
-
that must be reviewed
|
|
7
|
+
that must be reviewed before merging. SDK-driven surface changes are not
|
|
8
|
+
recorded in ``CHANGELOG.md`` — see ``docs/development.md`` §Bumping the
|
|
9
|
+
asana SDK.
|
|
8
10
|
|
|
9
11
|
To regenerate after an intentional SDK bump::
|
|
10
12
|
|
|
@@ -34,7 +36,7 @@ FIXTURE = Path(__file__).parent / "fixtures" / "cli_surface.json"
|
|
|
34
36
|
# to diverge. Skip the snapshot tests when the SDK doesn't match rather
|
|
35
37
|
# than failing — the surface drift on older / newer SDKs is informational,
|
|
36
38
|
# not a regression to gate against.
|
|
37
|
-
_SNAPSHOT_ASANA_VERSION = "5.
|
|
39
|
+
_SNAPSHOT_ASANA_VERSION = "5.3.0"
|
|
38
40
|
_INSTALLED_ASANA_VERSION = version("asana")
|
|
39
41
|
|
|
40
42
|
pytestmark = pytest.mark.skipif(
|
|
@@ -93,6 +95,7 @@ class TestSurfaceSnapshot:
|
|
|
93
95
|
assert actual == expected, (
|
|
94
96
|
"CLI surface differs from the recorded fixture. "
|
|
95
97
|
"Review the diff; if the SDK bump is intentional, regenerate "
|
|
96
|
-
"tests/fixtures/cli_surface.json
|
|
97
|
-
"CHANGELOG.md."
|
|
98
|
+
"tests/fixtures/cli_surface.json. SDK-driven surface changes "
|
|
99
|
+
"are not CHANGELOG.md entries — see docs/development.md "
|
|
100
|
+
"§Bumping the asana SDK."
|
|
98
101
|
)
|
|
@@ -35,7 +35,7 @@ from asana_api_cli.cli import main
|
|
|
35
35
|
FIXTURES = Path(__file__).parent / "fixtures" / "generate_python"
|
|
36
36
|
_UPDATE = os.environ.get("UPDATE_GENERATE_SNAPSHOTS") == "1"
|
|
37
37
|
|
|
38
|
-
_SNAPSHOT_ASANA_VERSION = "5.
|
|
38
|
+
_SNAPSHOT_ASANA_VERSION = "5.3.0"
|
|
39
39
|
pytestmark = pytest.mark.skipif(
|
|
40
40
|
version("asana") != _SNAPSHOT_ASANA_VERSION,
|
|
41
41
|
reason=(
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|