From 40fac3ded76f9ec9a585637ca95b538043e06fd7 Mon Sep 17 00:00:00 2001 From: msyyc <70930885+msyyc@users.noreply.github.com> Date: Fri, 3 Jan 2025 13:19:17 +0800 Subject: [PATCH 1/2] update test for spector --- .../eng/scripts/ci/regenerate.ts | 6 ++++-- .../asynctests/test_client_naming_async.py | 0 .../asynctests/test_client_structure_async.py | 0 .../mock_api_tests}/test_client_naming.py | 0 .../mock_api_tests}/test_client_structure.py | 0 .../mock_api_tests}/test_resiliency_srv_driven.py | 6 ++++-- .../test_resiliency_srv_driven_async.py | 0 .../generator/test/azure/requirements.txt | 14 +++++++------- .../test/generic_mock_api_tests/conftest.py | 8 ++++++-- .../test/unbranded/mock_api_tests/conftest.py | 5 ++--- .../generator/test/unbranded/requirements.txt | 7 ------- 11 files changed, 23 insertions(+), 23 deletions(-) rename packages/http-client-python/generator/test/{generic_mock_api_tests => azure/mock_api_tests}/asynctests/test_client_naming_async.py (100%) rename packages/http-client-python/generator/test/{generic_mock_api_tests => azure/mock_api_tests}/asynctests/test_client_structure_async.py (100%) rename packages/http-client-python/generator/test/{generic_mock_api_tests => azure/mock_api_tests}/test_client_naming.py (100%) rename packages/http-client-python/generator/test/{generic_mock_api_tests => azure/mock_api_tests}/test_client_structure.py (100%) rename packages/http-client-python/generator/test/{generic_mock_api_tests => azure/mock_api_tests}/test_resiliency_srv_driven.py (97%) rename packages/http-client-python/generator/test/{generic_mock_api_tests/asynctests => azure/mock_api_tests}/test_resiliency_srv_driven_async.py (100%) diff --git a/packages/http-client-python/eng/scripts/ci/regenerate.ts b/packages/http-client-python/eng/scripts/ci/regenerate.ts index fa12a2ea996..c762d8ad10f 100644 --- a/packages/http-client-python/eng/scripts/ci/regenerate.ts +++ b/packages/http-client-python/eng/scripts/ci/regenerate.ts @@ -191,7 +191,6 @@ async function getSubdirectories(baseDir: string, flags: RegenerateFlags): Promi const clientTspPath = join(subDirPath, "client.tsp"); const mainTspRelativePath = toPosix(relative(baseDir, mainTspPath)); - if (flags.flavor === "unbranded" && mainTspRelativePath.includes("azure")) return; // after fix test generation for nested operation group, remove this check if (mainTspRelativePath.includes("client-operation-group")) return; @@ -295,7 +294,10 @@ async function regenerate(flags: RegenerateFlagsInput): Promise { const flagsResolved = { debug: false, flavor: flags.flavor, ...flags }; const subdirectoriesForAzure = await getSubdirectories(AZURE_HTTP_SPECS, flagsResolved); const subdirectoriesForNonAzure = await getSubdirectories(HTTP_SPECS, flagsResolved); - const subdirectories = [...subdirectoriesForAzure, ...subdirectoriesForNonAzure]; + const subdirectories = + flags.flavor === "azure" + ? [...subdirectoriesForAzure, ...subdirectoriesForNonAzure] + : subdirectoriesForNonAzure; const cmdList: TspCommand[] = subdirectories.flatMap((subdirectory) => _getCmdList(subdirectory, flagsResolved), ); diff --git a/packages/http-client-python/generator/test/generic_mock_api_tests/asynctests/test_client_naming_async.py b/packages/http-client-python/generator/test/azure/mock_api_tests/asynctests/test_client_naming_async.py similarity index 100% rename from packages/http-client-python/generator/test/generic_mock_api_tests/asynctests/test_client_naming_async.py rename to packages/http-client-python/generator/test/azure/mock_api_tests/asynctests/test_client_naming_async.py diff --git a/packages/http-client-python/generator/test/generic_mock_api_tests/asynctests/test_client_structure_async.py b/packages/http-client-python/generator/test/azure/mock_api_tests/asynctests/test_client_structure_async.py similarity index 100% rename from packages/http-client-python/generator/test/generic_mock_api_tests/asynctests/test_client_structure_async.py rename to packages/http-client-python/generator/test/azure/mock_api_tests/asynctests/test_client_structure_async.py diff --git a/packages/http-client-python/generator/test/generic_mock_api_tests/test_client_naming.py b/packages/http-client-python/generator/test/azure/mock_api_tests/test_client_naming.py similarity index 100% rename from packages/http-client-python/generator/test/generic_mock_api_tests/test_client_naming.py rename to packages/http-client-python/generator/test/azure/mock_api_tests/test_client_naming.py diff --git a/packages/http-client-python/generator/test/generic_mock_api_tests/test_client_structure.py b/packages/http-client-python/generator/test/azure/mock_api_tests/test_client_structure.py similarity index 100% rename from packages/http-client-python/generator/test/generic_mock_api_tests/test_client_structure.py rename to packages/http-client-python/generator/test/azure/mock_api_tests/test_client_structure.py diff --git a/packages/http-client-python/generator/test/generic_mock_api_tests/test_resiliency_srv_driven.py b/packages/http-client-python/generator/test/azure/mock_api_tests/test_resiliency_srv_driven.py similarity index 97% rename from packages/http-client-python/generator/test/generic_mock_api_tests/test_resiliency_srv_driven.py rename to packages/http-client-python/generator/test/azure/mock_api_tests/test_resiliency_srv_driven.py index ec411ab1b09..a7f3f9a1e5f 100644 --- a/packages/http-client-python/generator/test/generic_mock_api_tests/test_resiliency_srv_driven.py +++ b/packages/http-client-python/generator/test/azure/mock_api_tests/test_resiliency_srv_driven.py @@ -90,8 +90,10 @@ def test_add_optional_param_from_one_optional(): client.from_one_optional(parameter="optional", new_parameter="new") -def test_break_the_glass(core_library): - request = core_library.rest.HttpRequest(method="DELETE", url="/add-operation") +def test_break_the_glass(): + from azure.core.rest import HttpRequest + + request = HttpRequest(method="DELETE", url="/add-operation") with V1Client( endpoint="http://localhost:3000", service_deployment_version="v2", diff --git a/packages/http-client-python/generator/test/generic_mock_api_tests/asynctests/test_resiliency_srv_driven_async.py b/packages/http-client-python/generator/test/azure/mock_api_tests/test_resiliency_srv_driven_async.py similarity index 100% rename from packages/http-client-python/generator/test/generic_mock_api_tests/asynctests/test_resiliency_srv_driven_async.py rename to packages/http-client-python/generator/test/azure/mock_api_tests/test_resiliency_srv_driven_async.py diff --git a/packages/http-client-python/generator/test/azure/requirements.txt b/packages/http-client-python/generator/test/azure/requirements.txt index 8f7ae18a1be..363895ad018 100644 --- a/packages/http-client-python/generator/test/azure/requirements.txt +++ b/packages/http-client-python/generator/test/azure/requirements.txt @@ -27,20 +27,24 @@ mypy==1.13.0 -e ./generated/azure-resource-manager-common-properties -e ./generated/azure-resource-manager-resources -e ./generated/azure-payload-pageable +-e ./generated/client-naming +-e ./generated/client-structure-default +-e ./generated/client-structure-multiclient +-e ./generated/client-structure-renamedoperation +-e ./generated/client-structure-twooperationgroup +-e ./generated/resiliency-srv-driven1 +-e ./generated/resiliency-srv-driven2 # common test case -e ./generated/authentication-api-key -e ./generated/authentication-http-custom -e ./generated/authentication-oauth2 -e ./generated/authentication-union --e ./generated/client-naming -e ./generated/encode-duration -e ./generated/encode-numeric -e ./generated/parameters-basic -e ./generated/parameters-collection-format -e ./generated/parameters-spread --e ./generated/resiliency-srv-driven1 --e ./generated/resiliency-srv-driven2 -e ./generated/serialization-encoded-name-json -e ./generated/server-endpoint-not-defined -e ./generated/server-path-multiple @@ -73,10 +77,6 @@ mypy==1.13.0 -e ./generated/special-headers-conditional-request -e ./generated/encode-datetime -e ./generated/encode-bytes --e ./generated/client-structure-default --e ./generated/client-structure-multiclient --e ./generated/client-structure-renamedoperation --e ./generated/client-structure-twooperationgroup -e ./generated/payload-content-negotiation -e ./generated/payload-json-merge-patch -e ./generated/payload-pageable diff --git a/packages/http-client-python/generator/test/generic_mock_api_tests/conftest.py b/packages/http-client-python/generator/test/generic_mock_api_tests/conftest.py index 659290f9f90..00ff4a8cc91 100644 --- a/packages/http-client-python/generator/test/generic_mock_api_tests/conftest.py +++ b/packages/http-client-python/generator/test/generic_mock_api_tests/conftest.py @@ -17,8 +17,12 @@ def start_server_process(): azure_http_path = Path(os.path.dirname(__file__)) / Path("../../../node_modules/@azure-tools/azure-http-specs") http_path = Path(os.path.dirname(__file__)) / Path("../../../node_modules/@typespec/http-specs") - os.chdir(azure_http_path.resolve()) - cmd = f"tsp-spector serve ./specs {(http_path / 'specs').resolve()}" + if "unbranded" in Path(os.getcwd()).parts: + os.chdir(http_path.resolve()) + cmd = "npx tsp-spector serve ./specs" + else: + os.chdir(azure_http_path.resolve()) + cmd = f"npx tsp-spector serve ./specs {(http_path / 'specs').resolve()}" if os.name == "nt": return subprocess.Popen(cmd, shell=True) return subprocess.Popen(cmd, shell=True, preexec_fn=os.setsid) diff --git a/packages/http-client-python/generator/test/unbranded/mock_api_tests/conftest.py b/packages/http-client-python/generator/test/unbranded/mock_api_tests/conftest.py index 423aaf46864..7fb975ee4f9 100644 --- a/packages/http-client-python/generator/test/unbranded/mock_api_tests/conftest.py +++ b/packages/http-client-python/generator/test/unbranded/mock_api_tests/conftest.py @@ -12,10 +12,9 @@ def start_server_process(): - azure_http_path = Path(os.path.dirname(__file__)) / Path("../../../../node_modules/@azure-tools/azure-http-specs") http_path = Path(os.path.dirname(__file__)) / Path("../../../../node_modules/@typespec/http-specs") - os.chdir(azure_http_path.resolve()) - cmd = f"tsp-spector serve ./specs {(http_path / 'specs').resolve()}" + os.chdir(http_path.resolve()) + cmd = "tsp-spector serve ./specs" if os.name == "nt": return subprocess.Popen(cmd, shell=True) return subprocess.Popen(cmd, shell=True, preexec_fn=os.setsid) diff --git a/packages/http-client-python/generator/test/unbranded/requirements.txt b/packages/http-client-python/generator/test/unbranded/requirements.txt index f4625694f3d..ab89d0678ef 100644 --- a/packages/http-client-python/generator/test/unbranded/requirements.txt +++ b/packages/http-client-python/generator/test/unbranded/requirements.txt @@ -15,14 +15,11 @@ mypy==1.13.0 -e ./generated/authentication-http-custom -e ./generated/authentication-oauth2 -e ./generated/authentication-union --e ./generated/client-naming -e ./generated/encode-duration -e ./generated/encode-numeric -e ./generated/parameters-basic -e ./generated/parameters-collection-format -e ./generated/parameters-spread --e ./generated/resiliency-srv-driven1 --e ./generated/resiliency-srv-driven2 -e ./generated/serialization-encoded-name-json -e ./generated/server-endpoint-not-defined -e ./generated/server-path-multiple @@ -55,10 +52,6 @@ mypy==1.13.0 -e ./generated/special-headers-conditional-request -e ./generated/encode-datetime -e ./generated/encode-bytes --e ./generated/client-structure-default --e ./generated/client-structure-multiclient --e ./generated/client-structure-renamedoperation --e ./generated/client-structure-twooperationgroup -e ./generated/payload-content-negotiation -e ./generated/payload-json-merge-patch -e ./generated/payload-pageable From b54a4b279cdbf649d1a6671c09c089d3f572e8a4 Mon Sep 17 00:00:00 2001 From: msyyc <70930885+msyyc@users.noreply.github.com> Date: Fri, 3 Jan 2025 13:21:59 +0800 Subject: [PATCH 2/2] update test for spector --- .../azure/mock_api_tests/test_resiliency_srv_driven_async.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/http-client-python/generator/test/azure/mock_api_tests/test_resiliency_srv_driven_async.py b/packages/http-client-python/generator/test/azure/mock_api_tests/test_resiliency_srv_driven_async.py index a74e6805fb0..14f31632732 100644 --- a/packages/http-client-python/generator/test/azure/mock_api_tests/test_resiliency_srv_driven_async.py +++ b/packages/http-client-python/generator/test/azure/mock_api_tests/test_resiliency_srv_driven_async.py @@ -94,8 +94,9 @@ async def test_add_optional_param_from_one_optional(): @pytest.mark.asyncio -async def test_break_the_glass(core_library): - request = core_library.rest.HttpRequest(method="DELETE", url="/add-operation") +async def test_break_the_glass(): + from azure.core.rest import HttpRequest + request = HttpRequest(method="DELETE", url="/add-operation") async with V1Client( endpoint="http://localhost:3000", service_deployment_version="v2",