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.
Files changed (36) hide show
  1. {asana_api_cli-3.3.0/src/asana_api_cli.egg-info → asana_api_cli-3.3.1}/PKG-INFO +1 -1
  2. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/pyproject.toml +1 -1
  3. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/cli.py +1 -0
  4. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1/src/asana_api_cli.egg-info}/PKG-INFO +1 -1
  5. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_cli_invocation.py +6 -2
  6. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_cli_surface.py +7 -4
  7. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_generate_python_snapshots.py +1 -1
  8. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/LICENSE +0 -0
  9. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/README.md +0 -0
  10. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/setup.cfg +0 -0
  11. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/__init__.py +0 -0
  12. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/click_ext.py +0 -0
  13. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/codegen.py +0 -0
  14. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/formatter.py +0 -0
  15. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/multibyte_filename.py +0 -0
  16. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/redactor.py +0 -0
  17. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/session.py +0 -0
  18. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/structured_arg.py +0 -0
  19. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli/version.py +0 -0
  20. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli.egg-info/SOURCES.txt +0 -0
  21. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli.egg-info/dependency_links.txt +0 -0
  22. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli.egg-info/entry_points.txt +0 -0
  23. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli.egg-info/requires.txt +0 -0
  24. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/src/asana_api_cli.egg-info/top_level.txt +0 -0
  25. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_cli.py +0 -0
  26. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_click_ext.py +0 -0
  27. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_codegen.py +0 -0
  28. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_formatter.py +0 -0
  29. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_generate_python.py +0 -0
  30. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_multibyte_filename.py +0 -0
  31. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_py310_compat.py +0 -0
  32. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_redactor.py +0 -0
  33. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_sdk_boilerplate.py +0 -0
  34. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_session.py +0 -0
  35. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_structured_arg.py +0 -0
  36. {asana_api_cli-3.3.0 → asana_api_cli-3.3.1}/tests/test_version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: asana-api-cli
3
- Version: 3.3.0
3
+ Version: 3.3.1
4
4
  Summary: Command-line wrapper around the official Asana Python SDK
5
5
  Author: Masanao Izumo
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "asana-api-cli"
3
- version = "3.3.0"
3
+ version = "3.3.1"
4
4
  description = "Command-line wrapper around the official Asana Python SDK"
5
5
  authors = [{name = "Masanao Izumo"}]
6
6
  readme = "README.md"
@@ -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",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: asana-api-cli
3
- Version: 3.3.0
3
+ Version: 3.3.1
4
4
  Summary: Command-line wrapper around the official Asana Python SDK
5
5
  Author: Masanao Izumo
6
6
  License-Expression: MIT
@@ -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
- assert "No such option: --paginate" in full_output(result)
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
- assert "No such option: --exception-query" in full_output(result)
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 (and recorded in CHANGELOG) before merging.
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.2.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 and note the change in "
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.2.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