Skip to content

Commit 818feb8

Browse files
authored
Add basic model filter integration test coverage (#563)
1 parent b6ccfd3 commit 818feb8

File tree

3 files changed

+124
-1
lines changed

3 files changed

+124
-1
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ lint: build
5858
# TEST_CASE: Optional, specify a test case (e.g. 'test_image_replication')
5959
# TEST_ARGS: Optional, additional arguments for pytest (e.g. '-v' for verbose mode)
6060

61-
TEST_COMMAND = $(if $(TEST_SUITE),$(if $(filter $(TEST_SUITE),linode_client login_client),$(TEST_SUITE),models/$(TEST_SUITE)))
61+
TEST_COMMAND = $(if $(TEST_SUITE),$(if $(filter $(TEST_SUITE),linode_client login_client filters),$(TEST_SUITE),models/$(TEST_SUITE)))
6262

6363
.PHONY: test-int
6464
test-int:
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
from test.integration.conftest import get_region
2+
from test.integration.helpers import get_test_label
3+
4+
import pytest
5+
6+
7+
@pytest.fixture(scope="package")
8+
def domain_instance(test_linode_client):
9+
client = test_linode_client
10+
11+
domain_addr = get_test_label(5) + "-example.com"
12+
soa_email = "[email protected]"
13+
14+
domain = client.domain_create(domain=domain_addr, soa_email=soa_email)
15+
16+
yield domain
17+
18+
domain.delete()
19+
20+
21+
@pytest.fixture(scope="package")
22+
def lke_cluster_instance(test_linode_client):
23+
node_type = test_linode_client.linode.types()[1] # g6-standard-1
24+
version = test_linode_client.lke.versions()[0]
25+
26+
region = get_region(
27+
test_linode_client, {"Kubernetes", "LA Disk Encryption"}
28+
)
29+
30+
node_pools = test_linode_client.lke.node_pool(node_type, 3)
31+
label = get_test_label() + "_cluster"
32+
33+
cluster = test_linode_client.lke.cluster_create(
34+
region, label, node_pools, version
35+
)
36+
37+
yield cluster
38+
39+
cluster.delete()
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
from test.integration.filters.fixtures import ( # noqa: F401
2+
domain_instance,
3+
lke_cluster_instance,
4+
)
5+
6+
from linode_api4.objects import (
7+
DatabaseEngine,
8+
DatabaseType,
9+
Domain,
10+
Firewall,
11+
Image,
12+
LKECluster,
13+
Type,
14+
)
15+
16+
17+
def test_database_type_model_filter(test_linode_client):
18+
client = test_linode_client
19+
20+
db_disk = client.database.types()[0].disk
21+
22+
filtered_db_type = client.database.types(DatabaseType.disk == db_disk)
23+
24+
assert db_disk == filtered_db_type[0].disk
25+
26+
27+
def test_database_engine_model_filter(test_linode_client):
28+
client = test_linode_client
29+
30+
engine = "mysql"
31+
32+
filtered_db_engine = client.database.engines(
33+
DatabaseEngine.engine == engine
34+
)
35+
36+
assert len(client.database.engines()) > len(filtered_db_engine)
37+
38+
39+
def test_domain_model_filter(test_linode_client, domain_instance):
40+
client = test_linode_client
41+
42+
filtered_domain = client.domains(Domain.domain == domain_instance.domain)
43+
44+
assert domain_instance.id == filtered_domain[0].id
45+
46+
47+
def test_image_model_filter(test_linode_client):
48+
client = test_linode_client
49+
50+
filtered_images = client.images(Image.label.contains("Debian"))
51+
52+
assert len(client.images()) > len(filtered_images)
53+
54+
55+
def test_linode_type_model_filter(test_linode_client):
56+
client = test_linode_client
57+
58+
filtered_types = client.linode.types(Type.label.contains("Linode"))
59+
60+
assert len(filtered_types) > 0
61+
assert "Linode" in filtered_types[0].label
62+
63+
64+
def test_lke_cluster_model_filter(test_linode_client, lke_cluster_instance):
65+
client = test_linode_client
66+
67+
filtered_cluster = client.lke.clusters(
68+
LKECluster.label.contains(lke_cluster_instance.label)
69+
)
70+
71+
assert filtered_cluster[0].id == lke_cluster_instance.id
72+
73+
74+
def test_networking_firewall_model_filter(
75+
test_linode_client, e2e_test_firewall
76+
):
77+
client = test_linode_client
78+
79+
filtered_firewall = client.networking.firewalls(
80+
Firewall.label.contains(e2e_test_firewall.label)
81+
)
82+
83+
assert len(filtered_firewall) > 0
84+
assert e2e_test_firewall.label in filtered_firewall[0].label

0 commit comments

Comments
 (0)