From 672b1f281a2673e4c472cc6eb66135381b52d156 Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Tue, 14 Jul 2026 16:01:07 +0200 Subject: [PATCH 1/5] Rename VPC-related fixtures to avoid name ambiguity with the tests --- tests/integration/vpc/conftest.py | 8 +++--- tests/integration/vpc/test_vpc.py | 46 +++++++++++++++---------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/tests/integration/vpc/conftest.py b/tests/integration/vpc/conftest.py index d4cbb033..ed84ba8b 100644 --- a/tests/integration/vpc/conftest.py +++ b/tests/integration/vpc/conftest.py @@ -11,7 +11,7 @@ @pytest.fixture -def test_vpc_w_subnet(): +def get_test_vpc_w_subnet(): vpc_json = create_vpc_w_subnet() vpc_id = str(vpc_json["id"]) @@ -21,7 +21,7 @@ def test_vpc_w_subnet(): @pytest.fixture -def test_vpc_wo_subnet(): +def get_test_vpc_wo_subnet(): region = get_random_region_with_caps(required_capabilities=["VPCs"]) label = get_random_text(5) + "-label" @@ -48,8 +48,8 @@ def test_vpc_wo_subnet(): @pytest.fixture -def test_subnet(test_vpc_wo_subnet): - vpc_id = test_vpc_wo_subnet +def get_test_subnet(get_test_vpc_wo_subnet): + vpc_id = get_test_vpc_wo_subnet subnet_label = get_random_text(5) + "-label" res = exec_test_command( BASE_CMDS["vpcs"] diff --git a/tests/integration/vpc/test_vpc.py b/tests/integration/vpc/test_vpc.py index 6616aa9f..2c764539 100644 --- a/tests/integration/vpc/test_vpc.py +++ b/tests/integration/vpc/test_vpc.py @@ -19,8 +19,8 @@ disable_vpc_dual_stack_tests = True -def test_list_vpcs(test_vpc_wo_subnet): - vpc_id = test_vpc_wo_subnet +def test_list_vpcs(get_test_vpc_wo_subnet): + vpc_id = get_test_vpc_wo_subnet res = exec_test_command(BASE_CMDS["vpcs"] + ["ls", "--text"]) headers = ["id", "label", "description", "region"] @@ -29,8 +29,8 @@ def test_list_vpcs(test_vpc_wo_subnet): assert vpc_id in res -def test_view_vpc(test_vpc_wo_subnet): - vpc_id = test_vpc_wo_subnet +def test_view_vpc(get_test_vpc_wo_subnet): + vpc_id = get_test_vpc_wo_subnet res = exec_test_command( BASE_CMDS["vpcs"] + ["view", vpc_id, "--text", "--no-headers"] @@ -40,8 +40,8 @@ def test_view_vpc(test_vpc_wo_subnet): @pytest.mark.smoke -def test_update_vpc(test_vpc_wo_subnet): - vpc_id = test_vpc_wo_subnet +def test_update_vpc(get_test_vpc_wo_subnet): + vpc_id = get_test_vpc_wo_subnet new_label = get_random_text(5) + "label" @@ -69,8 +69,8 @@ def test_update_vpc(test_vpc_wo_subnet): assert "new description" in description -def test_list_subnets(test_vpc_w_subnet): - vpc_id = test_vpc_w_subnet +def test_list_subnets(get_test_vpc_w_subnet): + vpc_id = get_test_vpc_w_subnet res = exec_test_command( BASE_CMD + ["subnets-list", vpc_id, "--text", "--delimiter=,"] @@ -89,15 +89,15 @@ def test_list_subnets(test_vpc_w_subnet): ), "String format does not match" -def test_view_subnet(test_vpc_wo_subnet, test_subnet): +def test_view_subnet(get_test_vpc_wo_subnet, get_test_subnet): # note calling test_subnet fixture will add subnet to test_vpc_wo_subnet - res, label = test_subnet + res, label = get_test_subnet res = res.split(",") vpc_subnet_id = res[0] - vpc_id = test_vpc_wo_subnet + vpc_id = get_test_vpc_wo_subnet output = exec_test_command( BASE_CMDS["vpcs"] + ["subnet-view", vpc_id, vpc_subnet_id, "--text"] @@ -110,8 +110,8 @@ def test_view_subnet(test_vpc_wo_subnet, test_subnet): @pytest.mark.smoke -def test_update_subnet(test_vpc_w_subnet): - vpc_id = test_vpc_w_subnet +def test_update_subnet(get_test_vpc_w_subnet): + vpc_id = get_test_vpc_w_subnet new_label = get_random_text(5) + "label" @@ -150,8 +150,8 @@ def test_fails_to_create_vpc_invalid_label(): assert "Must only use ASCII letters, numbers, and dashes" in res -def test_fails_to_create_vpc_duplicate_label(test_vpc_wo_subnet): - vpc_id = test_vpc_wo_subnet +def test_fails_to_create_vpc_duplicate_label(get_test_vpc_wo_subnet): + vpc_id = get_test_vpc_wo_subnet label = exec_test_command( BASE_CMD + ["view", vpc_id, "--text", "--no-headers", "--format=label"] ) @@ -165,8 +165,8 @@ def test_fails_to_create_vpc_duplicate_label(test_vpc_wo_subnet): assert "Label must be unique among your VPCs" in res -def test_fails_to_update_vpc_invalid_label(test_vpc_wo_subnet): - vpc_id = test_vpc_wo_subnet +def test_fails_to_update_vpc_invalid_label(get_test_vpc_wo_subnet): + vpc_id = get_test_vpc_wo_subnet invalid_label = "invalid_label" res = exec_failing_test_command( @@ -178,8 +178,8 @@ def test_fails_to_update_vpc_invalid_label(test_vpc_wo_subnet): assert "Must only use ASCII letters, numbers, and dashes" in res -def test_fails_to_create_vpc_subnet_w_invalid_label(test_vpc_wo_subnet): - vpc_id = test_vpc_wo_subnet +def test_fails_to_create_vpc_subnet_w_invalid_label(get_test_vpc_wo_subnet): + vpc_id = get_test_vpc_wo_subnet invalid_label = "invalid_label" res = exec_failing_test_command( @@ -199,8 +199,8 @@ def test_fails_to_create_vpc_subnet_w_invalid_label(test_vpc_wo_subnet): assert "Must only use ASCII letters, numbers, and dashes" in res -def test_fails_to_update_vpc_subnet_w_invalid_label(test_vpc_w_subnet): - vpc_id = test_vpc_w_subnet +def test_fails_to_update_vpc_subnet_w_invalid_label(get_test_vpc_w_subnet): + vpc_id = get_test_vpc_w_subnet invalid_label = "invalid_label" @@ -294,8 +294,8 @@ def test_create_vpc_with_custom_ipv6_prefix_length(prefix_len): @pytest.mark.skipif( disable_vpc_dual_stack_tests, reason="Dual-stack tests disabled" ) -def test_create_subnet_with_ipv6_auto(test_vpc_wo_subnet): - vpc_id = test_vpc_wo_subnet +def test_create_subnet_with_ipv6_auto(get_test_vpc_wo_subnet): + vpc_id = get_test_vpc_wo_subnet subnet_label = get_random_text(5) + "-ipv6subnet" res = exec_test_command( From 90b763e1f2737044a7e45f73d02932cd34c74940 Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Wed, 15 Jul 2026 12:30:45 +0200 Subject: [PATCH 2/5] Add int tests for RDMA VPC --- tests/integration/vpc/conftest.py | 28 +++++++++++++++++++ tests/integration/vpc/test_vpc.py | 45 ++++++++++++++++++++++++------- 2 files changed, 63 insertions(+), 10 deletions(-) diff --git a/tests/integration/vpc/conftest.py b/tests/integration/vpc/conftest.py index ed84ba8b..3fff96f7 100644 --- a/tests/integration/vpc/conftest.py +++ b/tests/integration/vpc/conftest.py @@ -47,6 +47,34 @@ def get_test_vpc_wo_subnet(): delete_target_id(target="vpcs", id=vpc_id) +@pytest.fixture +def get_test_vpc_w_rdma_type(): + # GPUDirect RDMA capability not available for now + # region = get_random_region_with_caps(required_capabilities=["VPCs", "GPUDirect RDMA"]) + region = get_random_region_with_caps(required_capabilities=["VPCs"]) + label = get_random_text(5) + "-test-rdma-vpc" + + vpc_id = exec_test_command( + BASE_CMDS["vpcs"] + + [ + "create", + "--label", + label, + "--region", + region, + "--vpc_type", + "rdma", + "--no-headers", + "--text", + "--format=id", + ] + ) + + yield vpc_id + + delete_target_id(target="vpcs", id=vpc_id) + + @pytest.fixture def get_test_subnet(get_test_vpc_wo_subnet): vpc_id = get_test_vpc_wo_subnet diff --git a/tests/integration/vpc/test_vpc.py b/tests/integration/vpc/test_vpc.py index 2c764539..1590d7d4 100644 --- a/tests/integration/vpc/test_vpc.py +++ b/tests/integration/vpc/test_vpc.py @@ -13,30 +13,40 @@ ) BASE_CMD = ["linode-cli", "vpcs"] +VPC_HEADERS = ["id", "label", "description", "region", "vpc_type"] # TODO: Remove this variable and @pytest.mark.skipif once VPC Dual Stack is ready to ship disable_vpc_dual_stack_tests = True +def get_vpcs_list(params: str = None): + params = params.split() if params else [] + command = BASE_CMDS["vpcs"] + ["ls", "--text"] + params + + return exec_test_command(command) + + +def get_vpc_view(vpc_id: int = None): + return json.loads( + exec_test_command(BASE_CMDS["vpcs"] + ["view", vpc_id, "--json"]) + )[0] + + def test_list_vpcs(get_test_vpc_wo_subnet): vpc_id = get_test_vpc_wo_subnet - res = exec_test_command(BASE_CMDS["vpcs"] + ["ls", "--text"]) - headers = ["id", "label", "description", "region"] + output = get_vpcs_list("--page-size 100") - for header in headers: - assert header in res - assert vpc_id in res + assert all(header in output for header in VPC_HEADERS) + assert vpc_id in output def test_view_vpc(get_test_vpc_wo_subnet): vpc_id = get_test_vpc_wo_subnet + output = get_vpc_view(vpc_id) - res = exec_test_command( - BASE_CMDS["vpcs"] + ["view", vpc_id, "--text", "--no-headers"] - ) - - assert vpc_id in res + assert str(output["id"]) == vpc_id + assert output["vpc_type"] == "regular" @pytest.mark.smoke @@ -69,6 +79,21 @@ def test_update_vpc(get_test_vpc_wo_subnet): assert "new description" in description +def test_vpc_with_rdma_type(get_test_vpc_w_rdma_type): + vpc_id = get_test_vpc_w_rdma_type + + output = get_vpcs_list("--page-size 100") + assert all(header in output for header in VPC_HEADERS) + assert vpc_id in output + + output = get_vpcs_list("--page-size 100 --format=vpc_type --no-headers") + assert any(["rdma" in output.split()]) + + output = get_vpc_view(vpc_id) + assert str(output["id"]) == vpc_id + assert output["vpc_type"] == "rdma" + + def test_list_subnets(get_test_vpc_w_subnet): vpc_id = get_test_vpc_w_subnet From 3cad4c796e301bf372d2c63df7e7677e0d02ef92 Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Wed, 15 Jul 2026 13:46:15 +0200 Subject: [PATCH 3/5] Add int tests for RDMA subnets # Conflicts: # tests/integration/vpc/conftest.py --- tests/integration/vpc/conftest.py | 33 +++++++++--- tests/integration/vpc/test_vpc.py | 84 ++++++++++++++++++------------- 2 files changed, 76 insertions(+), 41 deletions(-) diff --git a/tests/integration/vpc/conftest.py b/tests/integration/vpc/conftest.py index 3fff96f7..67342240 100644 --- a/tests/integration/vpc/conftest.py +++ b/tests/integration/vpc/conftest.py @@ -23,7 +23,6 @@ def get_test_vpc_w_subnet(): @pytest.fixture def get_test_vpc_wo_subnet(): region = get_random_region_with_caps(required_capabilities=["VPCs"]) - label = get_random_text(5) + "-label" vpc_id = exec_test_command( @@ -78,13 +77,13 @@ def get_test_vpc_w_rdma_type(): @pytest.fixture def get_test_subnet(get_test_vpc_wo_subnet): vpc_id = get_test_vpc_wo_subnet - subnet_label = get_random_text(5) + "-label" - res = exec_test_command( + label = get_random_text(5) + "-label" + subnet_id = exec_test_command( BASE_CMDS["vpcs"] + [ "subnet-create", "--label", - subnet_label, + label, "--ipv4", "10.0.0.0/24", vpc_id, @@ -92,9 +91,31 @@ def get_test_subnet(get_test_vpc_wo_subnet): "--no-headers", "--delimiter=,", ] - ) + ).split(",")[0] + + yield vpc_id, subnet_id + + +@pytest.fixture +def get_test_subnet_w_rdma_type(get_test_vpc_w_rdma_type): + vpc_id = get_test_vpc_w_rdma_type + label = get_random_text(5) + "-test-rdma-subnet" + subnet_id = exec_test_command( + BASE_CMDS["vpcs"] + + [ + "subnet-create", + "--label", + label, + "--ipv4", + "10.0.0.0/24", + vpc_id, + "--text", + "--no-headers", + "--delimiter=,", + ] + ).split(",")[0] - yield res, subnet_label + yield vpc_id, subnet_id @pytest.fixture diff --git a/tests/integration/vpc/test_vpc.py b/tests/integration/vpc/test_vpc.py index 1590d7d4..aeaf31c2 100644 --- a/tests/integration/vpc/test_vpc.py +++ b/tests/integration/vpc/test_vpc.py @@ -13,7 +13,8 @@ ) BASE_CMD = ["linode-cli", "vpcs"] -VPC_HEADERS = ["id", "label", "description", "region", "vpc_type"] +HEADERS_VPC = ["id", "label", "description", "region", "vpc_type"] +HEADERS_SUBNET = ["id", "label", "ipv4", "vpc_type"] # TODO: Remove this variable and @pytest.mark.skipif once VPC Dual Stack is ready to ship @@ -22,14 +23,29 @@ def get_vpcs_list(params: str = None): params = params.split() if params else [] - command = BASE_CMDS["vpcs"] + ["ls", "--text"] + params - + command = BASE_CMD + ["ls", "--text"] + params return exec_test_command(command) def get_vpc_view(vpc_id: int = None): return json.loads( - exec_test_command(BASE_CMDS["vpcs"] + ["view", vpc_id, "--json"]) + exec_test_command( + BASE_CMD + ["view", vpc_id, "--json"] + ) + )[0] + + +def get_subnets_list(vpc_id: int, params: str = None): + params = params.split() if params else [] + command = BASE_CMD + ["subnets-list", vpc_id] + params + return exec_test_command(command) + + +def get_subnet_view(vpc_id: int, subnet_id: int): + return json.loads( + exec_test_command( + BASE_CMD + ["subnet-view", vpc_id, subnet_id, "--json"] + ) )[0] @@ -37,7 +53,7 @@ def test_list_vpcs(get_test_vpc_wo_subnet): vpc_id = get_test_vpc_wo_subnet output = get_vpcs_list("--page-size 100") - assert all(header in output for header in VPC_HEADERS) + assert all(header in output for header in HEADERS_VPC) assert vpc_id in output @@ -45,6 +61,7 @@ def test_view_vpc(get_test_vpc_wo_subnet): vpc_id = get_test_vpc_wo_subnet output = get_vpc_view(vpc_id) + assert all([header in output.keys() for header in HEADERS_VPC]) assert str(output["id"]) == vpc_id assert output["vpc_type"] == "regular" @@ -83,7 +100,7 @@ def test_vpc_with_rdma_type(get_test_vpc_w_rdma_type): vpc_id = get_test_vpc_w_rdma_type output = get_vpcs_list("--page-size 100") - assert all(header in output for header in VPC_HEADERS) + assert all(header in output for header in HEADERS_VPC) assert vpc_id in output output = get_vpcs_list("--page-size 100 --format=vpc_type --no-headers") @@ -97,41 +114,23 @@ def test_vpc_with_rdma_type(get_test_vpc_w_rdma_type): def test_list_subnets(get_test_vpc_w_subnet): vpc_id = get_test_vpc_w_subnet - res = exec_test_command( - BASE_CMD + ["subnets-list", vpc_id, "--text", "--delimiter=,"] - ) - - lines = res.splitlines() - - headers = ["id", "label", "ipv4"] + output = get_subnets_list(vpc_id, "--text --delimiter=,").splitlines() + assert all(header in output[0] for header in HEADERS_SUBNET) - for header in headers: - assert header in lines[0] - - for line in lines[1:]: + for line in output[1:]: assert re.match( - r"^(\d+),(\w+),(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/\d+)$", line + r"^(\d+),(\w+),(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/\d+),(\w+)$", + line, ), "String format does not match" -def test_view_subnet(get_test_vpc_wo_subnet, get_test_subnet): - # note calling test_subnet fixture will add subnet to test_vpc_wo_subnet - res, label = get_test_subnet - - res = res.split(",") - - vpc_subnet_id = res[0] - - vpc_id = get_test_vpc_wo_subnet - - output = exec_test_command( - BASE_CMDS["vpcs"] + ["subnet-view", vpc_id, vpc_subnet_id, "--text"] - ) +def test_view_subnet(get_test_subnet): + vpc_id, subnet_id = get_test_subnet + output = get_subnet_view(vpc_id, subnet_id) - headers = ["id", "label", "ipv4"] - for header in headers: - assert header in output - assert vpc_subnet_id in output + assert all(header in output.keys() for header in HEADERS_SUBNET) + assert str(output["id"]) == subnet_id + assert output["vpc_type"] == "regular" @pytest.mark.smoke @@ -162,6 +161,21 @@ def test_update_subnet(get_test_vpc_w_subnet): assert new_label == updated_label +def test_subnet_with_rdma_type_vpc(get_test_subnet_w_rdma_type): + vpc_id, subnet_id = get_test_subnet_w_rdma_type + + output = get_subnets_list(vpc_id) + assert all(header in output for header in HEADERS_SUBNET) + assert subnet_id in output + + output = get_subnets_list(vpc_id, "--format=vpc_type --no-headers") + assert any(["rdma" in output.split()]) + + output = get_subnet_view(vpc_id, subnet_id) + assert str(output["id"]) == subnet_id + assert output["vpc_type"] == "rdma" + + def test_fails_to_create_vpc_invalid_label(): invalid_label = "invalid_label" region = get_random_region_with_caps(required_capabilities=["VPCs"]) From 63187cbd23044982da334a87f07e550ae19fcde9 Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Wed, 15 Jul 2026 15:18:32 +0200 Subject: [PATCH 4/5] Refactor: replace BASE_CMD with BASE_CMDS --- tests/integration/vpc/test_vpc.py | 43 +++++++++++++++---------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/tests/integration/vpc/test_vpc.py b/tests/integration/vpc/test_vpc.py index aeaf31c2..5465ae0d 100644 --- a/tests/integration/vpc/test_vpc.py +++ b/tests/integration/vpc/test_vpc.py @@ -12,7 +12,6 @@ get_random_text, ) -BASE_CMD = ["linode-cli", "vpcs"] HEADERS_VPC = ["id", "label", "description", "region", "vpc_type"] HEADERS_SUBNET = ["id", "label", "ipv4", "vpc_type"] @@ -23,28 +22,26 @@ def get_vpcs_list(params: str = None): params = params.split() if params else [] - command = BASE_CMD + ["ls", "--text"] + params + command = BASE_CMDS["vpcs"] + ["ls", "--text"] + params return exec_test_command(command) def get_vpc_view(vpc_id: int = None): return json.loads( - exec_test_command( - BASE_CMD + ["view", vpc_id, "--json"] - ) + exec_test_command(BASE_CMDS["vpcs"] + ["view", vpc_id, "--json"]) )[0] def get_subnets_list(vpc_id: int, params: str = None): params = params.split() if params else [] - command = BASE_CMD + ["subnets-list", vpc_id] + params + command = BASE_CMDS["vpcs"] + ["subnets-list", vpc_id] + params return exec_test_command(command) def get_subnet_view(vpc_id: int, subnet_id: int): return json.loads( exec_test_command( - BASE_CMD + ["subnet-view", vpc_id, subnet_id, "--json"] + BASE_CMDS["vpcs"] + ["subnet-view", vpc_id, subnet_id, "--json"] ) )[0] @@ -88,7 +85,7 @@ def test_update_vpc(get_test_vpc_wo_subnet): ) description = exec_test_command( - BASE_CMD + BASE_CMDS["vpcs"] + ["view", vpc_id, "--text", "--no-headers", "--format=description"] ) @@ -145,7 +142,7 @@ def test_update_subnet(get_test_vpc_w_subnet): ) updated_label = exec_test_command( - BASE_CMD + BASE_CMDS["vpcs"] + [ "subnet-update", vpc_id, @@ -181,7 +178,8 @@ def test_fails_to_create_vpc_invalid_label(): region = get_random_region_with_caps(required_capabilities=["VPCs"]) res = exec_failing_test_command( - BASE_CMD + ["create", "--label", invalid_label, "--region", region], + BASE_CMDS["vpcs"] + + ["create", "--label", invalid_label, "--region", region], ExitCodes.REQUEST_FAILED, ) @@ -192,12 +190,13 @@ def test_fails_to_create_vpc_invalid_label(): def test_fails_to_create_vpc_duplicate_label(get_test_vpc_wo_subnet): vpc_id = get_test_vpc_wo_subnet label = exec_test_command( - BASE_CMD + ["view", vpc_id, "--text", "--no-headers", "--format=label"] + BASE_CMDS["vpcs"] + + ["view", vpc_id, "--text", "--no-headers", "--format=label"] ) region = get_random_region_with_caps(required_capabilities=["VPCs"]) res = exec_failing_test_command( - BASE_CMD + ["create", "--label", label, "--region", region], + BASE_CMDS["vpcs"] + ["create", "--label", label, "--region", region], ExitCodes.REQUEST_FAILED, ) @@ -209,7 +208,7 @@ def test_fails_to_update_vpc_invalid_label(get_test_vpc_wo_subnet): invalid_label = "invalid_label" res = exec_failing_test_command( - BASE_CMD + ["update", vpc_id, "--label", invalid_label], + BASE_CMDS["vpcs"] + ["update", vpc_id, "--label", invalid_label], ExitCodes.REQUEST_FAILED, ) @@ -222,7 +221,7 @@ def test_fails_to_create_vpc_subnet_w_invalid_label(get_test_vpc_wo_subnet): invalid_label = "invalid_label" res = exec_failing_test_command( - BASE_CMD + BASE_CMDS["vpcs"] + [ "subnet-create", "--label", @@ -244,12 +243,12 @@ def test_fails_to_update_vpc_subnet_w_invalid_label(get_test_vpc_w_subnet): invalid_label = "invalid_label" subnet_id = exec_test_command( - BASE_CMD + BASE_CMDS["vpcs"] + ["subnets-list", vpc_id, "--text", "--format=id", "--no-headers"] ) res = exec_failing_test_command( - BASE_CMD + BASE_CMDS["vpcs"] + [ "subnet-update", vpc_id, @@ -275,7 +274,7 @@ def test_create_vpc_with_ipv6_auto(): label = get_random_text(5) + "-vpc" res = exec_test_command( - BASE_CMD + BASE_CMDS["vpcs"] + [ "create", "--label", @@ -308,7 +307,7 @@ def test_create_vpc_with_custom_ipv6_prefix_length(prefix_len): label = get_random_text(5) + f"-vpc{prefix_len}" res = exec_test_command( - BASE_CMD + BASE_CMDS["vpcs"] + [ "create", "--label", @@ -338,7 +337,7 @@ def test_create_subnet_with_ipv6_auto(get_test_vpc_wo_subnet): subnet_label = get_random_text(5) + "-ipv6subnet" res = exec_test_command( - BASE_CMD + BASE_CMDS["vpcs"] + [ "subnet-create", "--label", @@ -377,7 +376,7 @@ def test_fails_to_create_vpc_with_invalid_ipv6_range(): label = get_random_text(5) + "-invalidvpc" res = exec_failing_test_command( - BASE_CMD + BASE_CMDS["vpcs"] + [ "create", "--label", @@ -396,7 +395,7 @@ def test_fails_to_create_vpc_with_invalid_ipv6_range(): def test_list_vpc_ip_address(): res = exec_test_command( - BASE_CMD + ["ips-all-list", "--text", "--delimiter=,"] + BASE_CMDS["vpcs"] + ["ips-all-list", "--text", "--delimiter=,"] ) lines = res.splitlines() @@ -413,7 +412,7 @@ def test_list_vpc_ip_address(): def test_list_vpc_ipv6s_address(): res = exec_test_command( - BASE_CMD + ["ipv6s-all-list", "--text", "--delimiter=,"] + BASE_CMDS["vpcs"] + ["ipv6s-all-list", "--text", "--delimiter=,"] ) lines = res.splitlines() From 73f717e4ec52d1c4e9e7b4615213f15b21714622 Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Thu, 16 Jul 2026 10:40:02 +0200 Subject: [PATCH 5/5] Mark failing tests as skipped because of defect --- tests/integration/vpc/test_vpc.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/integration/vpc/test_vpc.py b/tests/integration/vpc/test_vpc.py index 5465ae0d..9f594898 100644 --- a/tests/integration/vpc/test_vpc.py +++ b/tests/integration/vpc/test_vpc.py @@ -173,6 +173,7 @@ def test_subnet_with_rdma_type_vpc(get_test_subnet_w_rdma_type): assert output["vpc_type"] == "rdma" +@pytest.mark.skip(reason="Defect: ARB-8019") def test_fails_to_create_vpc_invalid_label(): invalid_label = "invalid_label" region = get_random_region_with_caps(required_capabilities=["VPCs"]) @@ -203,6 +204,7 @@ def test_fails_to_create_vpc_duplicate_label(get_test_vpc_wo_subnet): assert "Label must be unique among your VPCs" in res +@pytest.mark.skip(reason="Defect: ARB-8019") def test_fails_to_update_vpc_invalid_label(get_test_vpc_wo_subnet): vpc_id = get_test_vpc_wo_subnet invalid_label = "invalid_label" @@ -216,6 +218,7 @@ def test_fails_to_update_vpc_invalid_label(get_test_vpc_wo_subnet): assert "Must only use ASCII letters, numbers, and dashes" in res +@pytest.mark.skip(reason="Defect: ARB-8019") def test_fails_to_create_vpc_subnet_w_invalid_label(get_test_vpc_wo_subnet): vpc_id = get_test_vpc_wo_subnet invalid_label = "invalid_label" @@ -237,6 +240,7 @@ def test_fails_to_create_vpc_subnet_w_invalid_label(get_test_vpc_wo_subnet): assert "Must only use ASCII letters, numbers, and dashes" in res +@pytest.mark.skip(reason="Defect: ARB-8019") def test_fails_to_update_vpc_subnet_w_invalid_label(get_test_vpc_w_subnet): vpc_id = get_test_vpc_w_subnet