diff --git a/.chronus/changes/add-test-alternate-initial-verb-post-2026-3-18-22-38-49.md b/.chronus/changes/add-test-alternate-initial-verb-post-2026-3-18-22-38-49.md new file mode 100644 index 00000000000..bffe050bd80 --- /dev/null +++ b/.chronus/changes/add-test-alternate-initial-verb-post-2026-3-18-22-38-49.md @@ -0,0 +1,7 @@ +--- +changeKind: internal +packages: + - "@typespec/http-client-python" +--- + +Add mock API test case for the `AlternateInitialVerb` POST pagination scenario where the initial request uses POST with a filter body and subsequent next link requests use GET. diff --git a/packages/http-client-python/generator/test/generic_mock_api_tests/asynctests/test_payload_pageable_async.py b/packages/http-client-python/generator/test/generic_mock_api_tests/asynctests/test_payload_pageable_async.py index c14800bb7d6..f0994df97b0 100644 --- a/packages/http-client-python/generator/test/generic_mock_api_tests/asynctests/test_payload_pageable_async.py +++ b/packages/http-client-python/generator/test/generic_mock_api_tests/asynctests/test_payload_pageable_async.py @@ -5,6 +5,7 @@ # -------------------------------------------------------------------------- import pytest from payload.pageable.aio import PageableClient +from payload.pageable.serverdrivenpagination.alternateinitialverb.models import Filter @pytest.fixture @@ -125,3 +126,9 @@ async def test_xml_pagination_list_with_continuation(client: PageableClient): async def test_xml_pagination_list_with_next_link(client: PageableClient): result = [p async for p in client.xml_pagination.list_with_next_link()] assert_result(result) + + +@pytest.mark.asyncio +async def test_alternate_initial_verb_post(client: PageableClient): + result = [p async for p in client.server_driven_pagination.alternate_initial_verb.post(Filter(filter="foo eq bar"))] + assert_result(result) diff --git a/packages/http-client-python/generator/test/generic_mock_api_tests/test_payload_pageable.py b/packages/http-client-python/generator/test/generic_mock_api_tests/test_payload_pageable.py index 66cc77022d5..7aaf8e0ce31 100644 --- a/packages/http-client-python/generator/test/generic_mock_api_tests/test_payload_pageable.py +++ b/packages/http-client-python/generator/test/generic_mock_api_tests/test_payload_pageable.py @@ -5,6 +5,7 @@ # -------------------------------------------------------------------------- import pytest from payload.pageable import PageableClient +from payload.pageable.serverdrivenpagination.alternateinitialverb.models import Filter @pytest.fixture @@ -91,3 +92,8 @@ def test_xml_pagination_list_with_continuation(client: PageableClient): def test_xml_pagination_list_with_next_link(client: PageableClient): result = list(client.xml_pagination.list_with_next_link()) assert_result(result) + + +def test_alternate_initial_verb_post(client: PageableClient): + result = list(client.server_driven_pagination.alternate_initial_verb.post(Filter(filter="foo eq bar"))) + assert_result(result) diff --git a/packages/http-client-python/package-lock.json b/packages/http-client-python/package-lock.json index b82ca429199..5ef30ee619b 100644 --- a/packages/http-client-python/package-lock.json +++ b/packages/http-client-python/package-lock.json @@ -29,7 +29,7 @@ "@typespec/compiler": "^1.10.0", "@typespec/events": "~0.80.0", "@typespec/http": "^1.10.0", - "@typespec/http-specs": "0.1.0-alpha.35-dev.1", + "@typespec/http-specs": "0.1.0-alpha.35-dev.4", "@typespec/openapi": "^1.10.0", "@typespec/rest": "~0.80.0", "@typespec/spec-api": "0.1.0-alpha.14-dev.1", @@ -2492,25 +2492,25 @@ } }, "node_modules/@typespec/http-specs": { - "version": "0.1.0-alpha.35-dev.1", - "resolved": "https://registry.npmjs.org/@typespec/http-specs/-/http-specs-0.1.0-alpha.35-dev.1.tgz", - "integrity": "sha512-sL3Q9Nmgim1YdHiKTaO1bdaUdPIV+1o1HIT8VbTfgEPresdgxJSp2Mll5uehIoiDzGZ3M11Ka/Lrdijr5VRYiA==", + "version": "0.1.0-alpha.35-dev.4", + "resolved": "https://registry.npmjs.org/@typespec/http-specs/-/http-specs-0.1.0-alpha.35-dev.4.tgz", + "integrity": "sha512-KI8b/wJDdWhNM8ypJEeOgl0Fj9xTxKqSQfmOUqgcQYqlaNeU+jpvqS/xD3wEOguh6YMrCUD9FG9h6mgp8409KA==", "dev": true, "license": "MIT", "dependencies": { - "@typespec/spec-api": "^0.1.0-alpha.13 || >= 0.1.0-alpha.14-dev.1", - "@typespec/spector": "^0.1.0-alpha.24 || >= 0.1.0-dev.0", - "deep-equal": "^2.2.0" + "@typespec/spec-api": "^0.1.0-alpha.13 || >= 0.1.0-alpha.14-dev.2", + "@typespec/spector": "^0.1.0-alpha.24 || >= 0.1.0-dev.2", + "deep-equal": "^2.2.3" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@typespec/compiler": "^1.10.0 || >= 1.11.0-dev.0", - "@typespec/http": "^1.10.0 || >= 1.11.0-dev.0", - "@typespec/rest": "^0.80.0 || >= 0.81.0-dev.0", - "@typespec/versioning": "^0.80.0 || >= 0.81.0-dev.0", - "@typespec/xml": "^0.80.0 || >= 0.81.0-dev.0" + "@typespec/compiler": "^1.10.0 || >= 1.11.0-dev.4", + "@typespec/http": "^1.10.0 || >= 1.11.0-dev.2", + "@typespec/rest": "^0.80.0 || >= 0.81.0-dev.1", + "@typespec/versioning": "^0.80.0 || >= 0.81.0-dev.1", + "@typespec/xml": "^0.80.0 || >= 0.81.0-dev.1" } }, "node_modules/@typespec/openapi": { diff --git a/packages/http-client-python/package.json b/packages/http-client-python/package.json index 9acd8f7a3c4..4fea573c5bf 100644 --- a/packages/http-client-python/package.json +++ b/packages/http-client-python/package.json @@ -94,7 +94,7 @@ "@typespec/sse": "~0.80.0", "@typespec/streams": "~0.80.0", "@typespec/xml": "~0.80.0", - "@typespec/http-specs": "0.1.0-alpha.35-dev.1", + "@typespec/http-specs": "0.1.0-alpha.35-dev.4", "@types/js-yaml": "~4.0.5", "@types/node": "~25.0.2", "@types/semver": "7.5.8",