From c176d41f945ecc173690d077ab4c6d198bc3ea8d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 11 Sep 2025 07:35:57 +0000 Subject: [PATCH 1/6] Initial plan From 67c35d1bdc5f7ae8ec5620429004746b04b826fc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 11 Sep 2025 07:47:37 +0000 Subject: [PATCH 2/6] Add test_azure_resource_manager_method_subscription_id.py with comprehensive test coverage Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com> --- ...resource_manager_method_subscription_id.py | 220 ++++++++++++++++++ 1 file changed, 220 insertions(+) create mode 100644 packages/typespec-python/test/azure/mock_api_tests/test_azure_resource_manager_method_subscription_id.py diff --git a/packages/typespec-python/test/azure/mock_api_tests/test_azure_resource_manager_method_subscription_id.py b/packages/typespec-python/test/azure/mock_api_tests/test_azure_resource_manager_method_subscription_id.py new file mode 100644 index 00000000000..a0eb52988e7 --- /dev/null +++ b/packages/typespec-python/test/azure/mock_api_tests/test_azure_resource_manager_method_subscription_id.py @@ -0,0 +1,220 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +import pytest +from azure.resourcemanager.methodsubscriptionid import MethodSubscriptionIdClient +from azure.resourcemanager.methodsubscriptionid import models + +SUBSCRIPTION_ID = "00000000-0000-0000-0000-000000000000" +RESOURCE_GROUP_NAME = "test-rg" + + +@pytest.fixture +def client(credential, authentication_policy): + with MethodSubscriptionIdClient( + credential, + SUBSCRIPTION_ID, + "http://localhost:3000", + authentication_policy=authentication_policy, + ) as client: + yield client + + +def test_operations_list(client): + """Test Operations.list() endpoint.""" + operations = client.operations.list() + operations_list = [op for op in operations] + assert len(operations_list) > 0 + + operation = operations_list[0] + assert operation.name == "Azure.ResourceManager.MethodSubscriptionId/services/read" + assert operation.is_data_action is False + assert operation.display.provider == "Azure.ResourceManager.MethodSubscriptionId" + assert operation.display.resource == "services" + assert operation.display.operation == "Lists services" + assert operation.display.description == "Lists registered services" + + +def test_two_subscription_resources_method_level_subscription_resource1_operations_get(client): + """Test get operation for SubscriptionResource1 with method-level subscription ID.""" + result = client.two_subscription_resources_method_level.subscription_resource1_operations.get( + subscription_id=SUBSCRIPTION_ID, + subscription_resource1_name="sub-resource-1", + ) + + assert result.id == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource1s/sub-resource-1" + assert result.name == "sub-resource-1" + assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResource1s" + assert result.properties.description == "Valid subscription resource 1" + assert result.properties.provisioning_state == "Succeeded" + assert result.system_data.created_by == "AzureSDK" + + +def test_two_subscription_resources_method_level_subscription_resource1_operations_put(client): + """Test put operation for SubscriptionResource1 with method-level subscription ID.""" + resource = models.SubscriptionResource1( + properties=models.SubscriptionResource1Properties( + description="Valid subscription resource 1" + ) + ) + + result = client.two_subscription_resources_method_level.subscription_resource1_operations.put( + subscription_id=SUBSCRIPTION_ID, + subscription_resource1_name="sub-resource-1", + resource=resource, + ) + + assert result.id == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource1s/sub-resource-1" + assert result.name == "sub-resource-1" + assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResource1s" + assert result.properties.description == "Valid subscription resource 1" + assert result.properties.provisioning_state == "Succeeded" + assert result.system_data.created_by == "AzureSDK" + + +def test_two_subscription_resources_method_level_subscription_resource1_operations_delete(client): + """Test delete operation for SubscriptionResource1 with method-level subscription ID.""" + client.two_subscription_resources_method_level.subscription_resource1_operations.delete( + subscription_id=SUBSCRIPTION_ID, + subscription_resource1_name="sub-resource-1", + ) + + +def test_two_subscription_resources_method_level_subscription_resource2_operations_get(client): + """Test get operation for SubscriptionResource2 with method-level subscription ID.""" + result = client.two_subscription_resources_method_level.subscription_resource2_operations.get( + subscription_id=SUBSCRIPTION_ID, + subscription_resource2_name="sub-resource-2", + ) + + assert result.id == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource2s/sub-resource-2" + assert result.name == "sub-resource-2" + assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResource2s" + assert result.properties.config_value == "test-config" + assert result.properties.provisioning_state == "Succeeded" + assert result.system_data.created_by == "AzureSDK" + + +def test_two_subscription_resources_method_level_subscription_resource2_operations_put(client): + """Test put operation for SubscriptionResource2 with method-level subscription ID.""" + resource = models.SubscriptionResource2( + properties=models.SubscriptionResource2Properties( + config_value="test-config" + ) + ) + + result = client.two_subscription_resources_method_level.subscription_resource2_operations.put( + subscription_id=SUBSCRIPTION_ID, + subscription_resource2_name="sub-resource-2", + resource=resource, + ) + + assert result.id == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource2s/sub-resource-2" + assert result.name == "sub-resource-2" + assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResource2s" + assert result.properties.config_value == "test-config" + assert result.properties.provisioning_state == "Succeeded" + assert result.system_data.created_by == "AzureSDK" + + +def test_two_subscription_resources_method_level_subscription_resource2_operations_delete(client): + """Test delete operation for SubscriptionResource2 with method-level subscription ID.""" + client.two_subscription_resources_method_level.subscription_resource2_operations.delete( + subscription_id=SUBSCRIPTION_ID, + subscription_resource2_name="sub-resource-2", + ) + + +def test_mixed_subscription_placement_subscription_resource_operations_get(client): + """Test get operation for SubscriptionResource in mixed placement scenario.""" + result = client.mixed_subscription_placement.subscription_resource_operations.get( + subscription_id=SUBSCRIPTION_ID, + subscription_resource_name="sub-resource", + ) + + assert result.id == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResources/sub-resource" + assert result.name == "sub-resource" + assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResources" + assert result.properties.subscription_setting == "test-sub-setting" + assert result.properties.provisioning_state == "Succeeded" + assert result.system_data.created_by == "AzureSDK" + + +def test_mixed_subscription_placement_subscription_resource_operations_put(client): + """Test put operation for SubscriptionResource in mixed placement scenario.""" + resource = models.SubscriptionResource( + properties=models.SubscriptionResourceProperties( + subscription_setting="test-sub-setting" + ) + ) + + result = client.mixed_subscription_placement.subscription_resource_operations.put( + subscription_id=SUBSCRIPTION_ID, + subscription_resource_name="sub-resource", + resource=resource, + ) + + assert result.id == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResources/sub-resource" + assert result.name == "sub-resource" + assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResources" + assert result.properties.subscription_setting == "test-sub-setting" + assert result.properties.provisioning_state == "Succeeded" + assert result.system_data.created_by == "AzureSDK" + + +def test_mixed_subscription_placement_subscription_resource_operations_delete(client): + """Test delete operation for SubscriptionResource in mixed placement scenario.""" + client.mixed_subscription_placement.subscription_resource_operations.delete( + subscription_id=SUBSCRIPTION_ID, + subscription_resource_name="sub-resource", + ) + + +def test_mixed_subscription_placement_resource_group_resource_operations_get(client): + """Test get operation for ResourceGroupResource with client-level subscription ID.""" + result = client.mixed_subscription_placement.resource_group_resource_operations.get( + resource_group_name=RESOURCE_GROUP_NAME, + resource_group_resource_name="rg-resource", + ) + + assert result.id == f"/subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP_NAME}/providers/Azure.ResourceManager.MethodSubscriptionId/resourceGroupResources/rg-resource" + assert result.name == "rg-resource" + assert result.type == "Azure.ResourceManager.MethodSubscriptionId/resourceGroupResources" + assert result.location == "eastus" + assert result.properties.resource_group_setting == "test-setting" + assert result.properties.provisioning_state == "Succeeded" + assert result.system_data.created_by == "AzureSDK" + + +def test_mixed_subscription_placement_resource_group_resource_operations_put(client): + """Test put operation for ResourceGroupResource with client-level subscription ID.""" + resource = models.ResourceGroupResource( + location="eastus", + properties=models.ResourceGroupResourceProperties( + resource_group_setting="test-setting" + ) + ) + + result = client.mixed_subscription_placement.resource_group_resource_operations.put( + resource_group_name=RESOURCE_GROUP_NAME, + resource_group_resource_name="rg-resource", + resource=resource, + ) + + assert result.id == f"/subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP_NAME}/providers/Azure.ResourceManager.MethodSubscriptionId/resourceGroupResources/rg-resource" + assert result.name == "rg-resource" + assert result.type == "Azure.ResourceManager.MethodSubscriptionId/resourceGroupResources" + assert result.location == "eastus" + assert result.properties.resource_group_setting == "test-setting" + assert result.properties.provisioning_state == "Succeeded" + assert result.system_data.created_by == "AzureSDK" + + +def test_mixed_subscription_placement_resource_group_resource_operations_delete(client): + """Test delete operation for ResourceGroupResource with client-level subscription ID.""" + client.mixed_subscription_placement.resource_group_resource_operations.delete( + resource_group_name=RESOURCE_GROUP_NAME, + resource_group_resource_name="rg-resource", + ) \ No newline at end of file From c20804f68c6b9e38ed61143503662c98c41dd26f Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Thu, 11 Sep 2025 16:01:43 +0800 Subject: [PATCH 3/6] Update requirements.txt --- packages/typespec-python/test/azure/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/typespec-python/test/azure/requirements.txt b/packages/typespec-python/test/azure/requirements.txt index 8cbdafa886a..766de085b52 100644 --- a/packages/typespec-python/test/azure/requirements.txt +++ b/packages/typespec-python/test/azure/requirements.txt @@ -30,6 +30,7 @@ azure-mgmt-core==1.6.0 -e ./generated/azure-resource-manager-non-resource -e ./generated/azure-resource-manager-operation-templates -e ./generated/azure-resource-manager-resources +-e ./generated/azure-resource-manager-method-subscription-id -e ./generated/azure-payload-pageable -e ./generated/client-namespace -e ./generated/client-naming From ef49e6a934d118e6de02fdfbd954520b8325699b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 11 Sep 2025 10:05:33 +0000 Subject: [PATCH 4/6] Add methodsubscriptionid to cspell.yaml Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com> --- cspell.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/cspell.yaml b/cspell.yaml index a0230c485f4..0536e115d58 100644 --- a/cspell.yaml +++ b/cspell.yaml @@ -64,6 +64,7 @@ words: - macvmimage - mday - mergepatchjsonversiontolerant + - methodsubscriptionid - mgmt - mgmtplane - mros From af7787e2b465c7186a52395b974674c228116e36 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 11 Sep 2025 10:57:02 +0000 Subject: [PATCH 5/6] Format test_azure_resource_manager_method_subscription_id.py with black Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com> --- ...resource_manager_method_subscription_id.py | 85 +++++++++++-------- 1 file changed, 50 insertions(+), 35 deletions(-) diff --git a/packages/typespec-python/test/azure/mock_api_tests/test_azure_resource_manager_method_subscription_id.py b/packages/typespec-python/test/azure/mock_api_tests/test_azure_resource_manager_method_subscription_id.py index a0eb52988e7..5f3704a5a19 100644 --- a/packages/typespec-python/test/azure/mock_api_tests/test_azure_resource_manager_method_subscription_id.py +++ b/packages/typespec-python/test/azure/mock_api_tests/test_azure_resource_manager_method_subscription_id.py @@ -27,7 +27,7 @@ def test_operations_list(client): operations = client.operations.list() operations_list = [op for op in operations] assert len(operations_list) > 0 - + operation = operations_list[0] assert operation.name == "Azure.ResourceManager.MethodSubscriptionId/services/read" assert operation.is_data_action is False @@ -43,8 +43,11 @@ def test_two_subscription_resources_method_level_subscription_resource1_operatio subscription_id=SUBSCRIPTION_ID, subscription_resource1_name="sub-resource-1", ) - - assert result.id == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource1s/sub-resource-1" + + assert ( + result.id + == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource1s/sub-resource-1" + ) assert result.name == "sub-resource-1" assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResource1s" assert result.properties.description == "Valid subscription resource 1" @@ -55,18 +58,19 @@ def test_two_subscription_resources_method_level_subscription_resource1_operatio def test_two_subscription_resources_method_level_subscription_resource1_operations_put(client): """Test put operation for SubscriptionResource1 with method-level subscription ID.""" resource = models.SubscriptionResource1( - properties=models.SubscriptionResource1Properties( - description="Valid subscription resource 1" - ) + properties=models.SubscriptionResource1Properties(description="Valid subscription resource 1") ) - + result = client.two_subscription_resources_method_level.subscription_resource1_operations.put( subscription_id=SUBSCRIPTION_ID, subscription_resource1_name="sub-resource-1", resource=resource, ) - - assert result.id == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource1s/sub-resource-1" + + assert ( + result.id + == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource1s/sub-resource-1" + ) assert result.name == "sub-resource-1" assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResource1s" assert result.properties.description == "Valid subscription resource 1" @@ -88,8 +92,11 @@ def test_two_subscription_resources_method_level_subscription_resource2_operatio subscription_id=SUBSCRIPTION_ID, subscription_resource2_name="sub-resource-2", ) - - assert result.id == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource2s/sub-resource-2" + + assert ( + result.id + == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource2s/sub-resource-2" + ) assert result.name == "sub-resource-2" assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResource2s" assert result.properties.config_value == "test-config" @@ -100,18 +107,19 @@ def test_two_subscription_resources_method_level_subscription_resource2_operatio def test_two_subscription_resources_method_level_subscription_resource2_operations_put(client): """Test put operation for SubscriptionResource2 with method-level subscription ID.""" resource = models.SubscriptionResource2( - properties=models.SubscriptionResource2Properties( - config_value="test-config" - ) + properties=models.SubscriptionResource2Properties(config_value="test-config") ) - + result = client.two_subscription_resources_method_level.subscription_resource2_operations.put( subscription_id=SUBSCRIPTION_ID, subscription_resource2_name="sub-resource-2", resource=resource, ) - - assert result.id == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource2s/sub-resource-2" + + assert ( + result.id + == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource2s/sub-resource-2" + ) assert result.name == "sub-resource-2" assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResource2s" assert result.properties.config_value == "test-config" @@ -133,8 +141,11 @@ def test_mixed_subscription_placement_subscription_resource_operations_get(clien subscription_id=SUBSCRIPTION_ID, subscription_resource_name="sub-resource", ) - - assert result.id == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResources/sub-resource" + + assert ( + result.id + == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResources/sub-resource" + ) assert result.name == "sub-resource" assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResources" assert result.properties.subscription_setting == "test-sub-setting" @@ -145,18 +156,19 @@ def test_mixed_subscription_placement_subscription_resource_operations_get(clien def test_mixed_subscription_placement_subscription_resource_operations_put(client): """Test put operation for SubscriptionResource in mixed placement scenario.""" resource = models.SubscriptionResource( - properties=models.SubscriptionResourceProperties( - subscription_setting="test-sub-setting" - ) + properties=models.SubscriptionResourceProperties(subscription_setting="test-sub-setting") ) - + result = client.mixed_subscription_placement.subscription_resource_operations.put( subscription_id=SUBSCRIPTION_ID, subscription_resource_name="sub-resource", resource=resource, ) - - assert result.id == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResources/sub-resource" + + assert ( + result.id + == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResources/sub-resource" + ) assert result.name == "sub-resource" assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResources" assert result.properties.subscription_setting == "test-sub-setting" @@ -178,8 +190,11 @@ def test_mixed_subscription_placement_resource_group_resource_operations_get(cli resource_group_name=RESOURCE_GROUP_NAME, resource_group_resource_name="rg-resource", ) - - assert result.id == f"/subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP_NAME}/providers/Azure.ResourceManager.MethodSubscriptionId/resourceGroupResources/rg-resource" + + assert ( + result.id + == f"/subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP_NAME}/providers/Azure.ResourceManager.MethodSubscriptionId/resourceGroupResources/rg-resource" + ) assert result.name == "rg-resource" assert result.type == "Azure.ResourceManager.MethodSubscriptionId/resourceGroupResources" assert result.location == "eastus" @@ -191,19 +206,19 @@ def test_mixed_subscription_placement_resource_group_resource_operations_get(cli def test_mixed_subscription_placement_resource_group_resource_operations_put(client): """Test put operation for ResourceGroupResource with client-level subscription ID.""" resource = models.ResourceGroupResource( - location="eastus", - properties=models.ResourceGroupResourceProperties( - resource_group_setting="test-setting" - ) + location="eastus", properties=models.ResourceGroupResourceProperties(resource_group_setting="test-setting") ) - + result = client.mixed_subscription_placement.resource_group_resource_operations.put( resource_group_name=RESOURCE_GROUP_NAME, resource_group_resource_name="rg-resource", resource=resource, ) - - assert result.id == f"/subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP_NAME}/providers/Azure.ResourceManager.MethodSubscriptionId/resourceGroupResources/rg-resource" + + assert ( + result.id + == f"/subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP_NAME}/providers/Azure.ResourceManager.MethodSubscriptionId/resourceGroupResources/rg-resource" + ) assert result.name == "rg-resource" assert result.type == "Azure.ResourceManager.MethodSubscriptionId/resourceGroupResources" assert result.location == "eastus" @@ -217,4 +232,4 @@ def test_mixed_subscription_placement_resource_group_resource_operations_delete( client.mixed_subscription_placement.resource_group_resource_operations.delete( resource_group_name=RESOURCE_GROUP_NAME, resource_group_resource_name="rg-resource", - ) \ No newline at end of file + ) From 62ad18622d0846bb5682e9cc5d208992c2d0f4a2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 11 Sep 2025 11:35:15 +0000 Subject: [PATCH 6/6] Add async test cases for azure-resource-manager-method-subscription-id Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com> --- ...ce_manager_method_subscription_id_async.py | 248 ++++++++++++++++++ 1 file changed, 248 insertions(+) create mode 100644 packages/typespec-python/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_method_subscription_id_async.py diff --git a/packages/typespec-python/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_method_subscription_id_async.py b/packages/typespec-python/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_method_subscription_id_async.py new file mode 100644 index 00000000000..7b96c3c297b --- /dev/null +++ b/packages/typespec-python/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_method_subscription_id_async.py @@ -0,0 +1,248 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +import pytest +from azure.resourcemanager.methodsubscriptionid.aio import MethodSubscriptionIdClient +from azure.resourcemanager.methodsubscriptionid import models + +SUBSCRIPTION_ID = "00000000-0000-0000-0000-000000000000" +RESOURCE_GROUP_NAME = "test-rg" + + +@pytest.fixture +async def client(credential, authentication_policy): + async with MethodSubscriptionIdClient( + credential, + SUBSCRIPTION_ID, + "http://localhost:3000", + authentication_policy=authentication_policy, + ) as client: + yield client + + +@pytest.mark.asyncio +async def test_operations_list(client): + """Test Operations.list() endpoint.""" + operations = client.operations.list() + operations_list = [op async for op in operations] + assert len(operations_list) > 0 + + operation = operations_list[0] + assert operation.name == "Azure.ResourceManager.MethodSubscriptionId/services/read" + assert operation.is_data_action is False + assert operation.display.provider == "Azure.ResourceManager.MethodSubscriptionId" + assert operation.display.resource == "services" + assert operation.display.operation == "Lists services" + assert operation.display.description == "Lists registered services" + + +@pytest.mark.asyncio +async def test_two_subscription_resources_method_level_subscription_resource1_operations_get(client): + """Test get operation for SubscriptionResource1 with method-level subscription ID.""" + result = await client.two_subscription_resources_method_level.subscription_resource1_operations.get( + subscription_id=SUBSCRIPTION_ID, + subscription_resource1_name="sub-resource-1", + ) + + assert ( + result.id + == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource1s/sub-resource-1" + ) + assert result.name == "sub-resource-1" + assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResource1s" + assert result.properties.description == "Valid subscription resource 1" + assert result.properties.provisioning_state == "Succeeded" + assert result.system_data.created_by == "AzureSDK" + + +@pytest.mark.asyncio +async def test_two_subscription_resources_method_level_subscription_resource1_operations_put(client): + """Test put operation for SubscriptionResource1 with method-level subscription ID.""" + resource = models.SubscriptionResource1( + properties=models.SubscriptionResource1Properties(description="Valid subscription resource 1") + ) + + result = await client.two_subscription_resources_method_level.subscription_resource1_operations.put( + subscription_id=SUBSCRIPTION_ID, + subscription_resource1_name="sub-resource-1", + resource=resource, + ) + + assert ( + result.id + == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource1s/sub-resource-1" + ) + assert result.name == "sub-resource-1" + assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResource1s" + assert result.properties.description == "Valid subscription resource 1" + assert result.properties.provisioning_state == "Succeeded" + assert result.system_data.created_by == "AzureSDK" + + +@pytest.mark.asyncio +async def test_two_subscription_resources_method_level_subscription_resource1_operations_delete(client): + """Test delete operation for SubscriptionResource1 with method-level subscription ID.""" + await client.two_subscription_resources_method_level.subscription_resource1_operations.delete( + subscription_id=SUBSCRIPTION_ID, + subscription_resource1_name="sub-resource-1", + ) + + +@pytest.mark.asyncio +async def test_two_subscription_resources_method_level_subscription_resource2_operations_get(client): + """Test get operation for SubscriptionResource2 with method-level subscription ID.""" + result = await client.two_subscription_resources_method_level.subscription_resource2_operations.get( + subscription_id=SUBSCRIPTION_ID, + subscription_resource2_name="sub-resource-2", + ) + + assert ( + result.id + == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource2s/sub-resource-2" + ) + assert result.name == "sub-resource-2" + assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResource2s" + assert result.properties.config_value == "test-config" + assert result.properties.provisioning_state == "Succeeded" + assert result.system_data.created_by == "AzureSDK" + + +@pytest.mark.asyncio +async def test_two_subscription_resources_method_level_subscription_resource2_operations_put(client): + """Test put operation for SubscriptionResource2 with method-level subscription ID.""" + resource = models.SubscriptionResource2( + properties=models.SubscriptionResource2Properties(config_value="test-config") + ) + + result = await client.two_subscription_resources_method_level.subscription_resource2_operations.put( + subscription_id=SUBSCRIPTION_ID, + subscription_resource2_name="sub-resource-2", + resource=resource, + ) + + assert ( + result.id + == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource2s/sub-resource-2" + ) + assert result.name == "sub-resource-2" + assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResource2s" + assert result.properties.config_value == "test-config" + assert result.properties.provisioning_state == "Succeeded" + assert result.system_data.created_by == "AzureSDK" + + +@pytest.mark.asyncio +async def test_two_subscription_resources_method_level_subscription_resource2_operations_delete(client): + """Test delete operation for SubscriptionResource2 with method-level subscription ID.""" + await client.two_subscription_resources_method_level.subscription_resource2_operations.delete( + subscription_id=SUBSCRIPTION_ID, + subscription_resource2_name="sub-resource-2", + ) + + +@pytest.mark.asyncio +async def test_mixed_subscription_placement_subscription_resource_operations_get(client): + """Test get operation for SubscriptionResource in mixed placement scenario.""" + result = await client.mixed_subscription_placement.subscription_resource_operations.get( + subscription_id=SUBSCRIPTION_ID, + subscription_resource_name="sub-resource", + ) + + assert ( + result.id + == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResources/sub-resource" + ) + assert result.name == "sub-resource" + assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResources" + assert result.properties.subscription_setting == "test-sub-setting" + assert result.properties.provisioning_state == "Succeeded" + assert result.system_data.created_by == "AzureSDK" + + +@pytest.mark.asyncio +async def test_mixed_subscription_placement_subscription_resource_operations_put(client): + """Test put operation for SubscriptionResource in mixed placement scenario.""" + resource = models.SubscriptionResource( + properties=models.SubscriptionResourceProperties(subscription_setting="test-sub-setting") + ) + + result = await client.mixed_subscription_placement.subscription_resource_operations.put( + subscription_id=SUBSCRIPTION_ID, + subscription_resource_name="sub-resource", + resource=resource, + ) + + assert ( + result.id + == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResources/sub-resource" + ) + assert result.name == "sub-resource" + assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResources" + assert result.properties.subscription_setting == "test-sub-setting" + assert result.properties.provisioning_state == "Succeeded" + assert result.system_data.created_by == "AzureSDK" + + +@pytest.mark.asyncio +async def test_mixed_subscription_placement_subscription_resource_operations_delete(client): + """Test delete operation for SubscriptionResource in mixed placement scenario.""" + await client.mixed_subscription_placement.subscription_resource_operations.delete( + subscription_id=SUBSCRIPTION_ID, + subscription_resource_name="sub-resource", + ) + + +@pytest.mark.asyncio +async def test_mixed_subscription_placement_resource_group_resource_operations_get(client): + """Test get operation for ResourceGroupResource with client-level subscription ID.""" + result = await client.mixed_subscription_placement.resource_group_resource_operations.get( + resource_group_name=RESOURCE_GROUP_NAME, + resource_group_resource_name="rg-resource", + ) + + assert ( + result.id + == f"/subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP_NAME}/providers/Azure.ResourceManager.MethodSubscriptionId/resourceGroupResources/rg-resource" + ) + assert result.name == "rg-resource" + assert result.type == "Azure.ResourceManager.MethodSubscriptionId/resourceGroupResources" + assert result.location == "eastus" + assert result.properties.resource_group_setting == "test-setting" + assert result.properties.provisioning_state == "Succeeded" + assert result.system_data.created_by == "AzureSDK" + + +@pytest.mark.asyncio +async def test_mixed_subscription_placement_resource_group_resource_operations_put(client): + """Test put operation for ResourceGroupResource with client-level subscription ID.""" + resource = models.ResourceGroupResource( + location="eastus", properties=models.ResourceGroupResourceProperties(resource_group_setting="test-setting") + ) + + result = await client.mixed_subscription_placement.resource_group_resource_operations.put( + resource_group_name=RESOURCE_GROUP_NAME, + resource_group_resource_name="rg-resource", + resource=resource, + ) + + assert ( + result.id + == f"/subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP_NAME}/providers/Azure.ResourceManager.MethodSubscriptionId/resourceGroupResources/rg-resource" + ) + assert result.name == "rg-resource" + assert result.type == "Azure.ResourceManager.MethodSubscriptionId/resourceGroupResources" + assert result.location == "eastus" + assert result.properties.resource_group_setting == "test-setting" + assert result.properties.provisioning_state == "Succeeded" + assert result.system_data.created_by == "AzureSDK" + + +@pytest.mark.asyncio +async def test_mixed_subscription_placement_resource_group_resource_operations_delete(client): + """Test delete operation for ResourceGroupResource with client-level subscription ID.""" + await client.mixed_subscription_placement.resource_group_resource_operations.delete( + resource_group_name=RESOURCE_GROUP_NAME, + resource_group_resource_name="rg-resource", + )