Skip to content

Commit 909a305

Browse files
authored
fix(tests): pre-create the testing namespaces for cross-namespace resource references tests (#113)
Description of changes: Making changes to [previous PR](#112), to make sure namespaces are being tested `@pytest.fixtures(scope="module")` don't pick up custom `@pytest.mark` so we changed the scope to `"function"` By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent 6b9d0c1 commit 909a305

File tree

1 file changed

+19
-18
lines changed

1 file changed

+19
-18
lines changed

test/e2e/tests/test_references.py

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import pytest
2020

21-
from logging import getLogger
21+
import logging
2222

2323
from acktest.k8s import condition
2424
from acktest.k8s import resource as k8s
@@ -34,31 +34,31 @@
3434
# Little longer to delete the policy since it's referred-to from the role...
3535
DELETE_POLICY_TIMEOUT_SECONDS = 30
3636
CHECK_WAIT_AFTER_REF_RESOLVE_SECONDS = 10
37-
TESTING_NAMESPACE = "custom_namespace"
3837

39-
log = getLogger(__name__)
4038

4139
@pytest.fixture(scope="module")
4240
def referred_policy_name():
4341
return random_suffix_name("referred-policy", 24)
4442

45-
4643
@pytest.fixture(scope="module")
47-
def referring_role(request, referred_policy_name):
44+
def referred_policy_namspace():
45+
return random_suffix_name("policy-namespace", 24)
46+
47+
48+
@pytest.fixture(scope="function")
49+
def referring_role(request, referred_policy_name, referred_policy_namspace):
4850
role_name = random_suffix_name("referring-role", 24)
4951

5052
marker = request.node.get_closest_marker("resource_data")
5153
filename = "role_referring"
52-
namespace = "default"
54+
replacements = REPLACEMENT_VALUES.copy()
5355

5456
if marker is not None:
5557
data = marker.args[0]
5658
if 'withNamespace' in data and data['withNamespace']:
5759
filename = "role_referring_namespace"
58-
namespace = TESTING_NAMESPACE
59-
replacements['POLICY_NAMESPACE'] = namespace
60+
replacements['POLICY_NAMESPACE'] = referred_policy_namspace
6061

61-
replacements = REPLACEMENT_VALUES.copy()
6262
replacements['ROLE_NAME'] = role_name
6363
replacements['POLICY_NAME'] = referred_policy_name
6464

@@ -69,7 +69,7 @@ def referring_role(request, referred_policy_name):
6969

7070
ref = k8s.CustomResourceReference(
7171
CRD_GROUP, CRD_VERSION, ROLE_RESOURCE_PLURAL,
72-
role_name, namespace=namespace,
72+
role_name, namespace="default",
7373
)
7474
k8s.create_custom_resource(ref, resource_data)
7575
cr = k8s.wait_resource_consumed_by_controller(ref)
@@ -95,26 +95,27 @@ def referring_role(request, referred_policy_name):
9595
role.wait_until_deleted(role_name)
9696

9797

98-
@pytest.fixture(scope="module")
99-
def referred_policy(request, referred_policy_name):
98+
@pytest.fixture(scope="function")
99+
def referred_policy(request, referred_policy_name, referred_policy_namspace):
100100
policy_desc = "a referred-to policy"
101101

102102
marker = request.node.get_closest_marker("resource_data")
103103
filename = "policy_simple"
104104
namespace = "default"
105105

106+
replacements = REPLACEMENT_VALUES.copy()
107+
106108
if marker is not None:
107109
data = marker.args[0]
108-
if 'withNamespace' in data:
109-
filename = "policy_simple_namespace"
110-
namespace = TESTING_NAMESPACE
111-
replacements['POLICY_NAMESPACE'] = namespace
110+
if 'withNamespace' in data and data['withNamespace']:
111+
namespace = referred_policy_namspace
112112
k8s.create_k8s_namespace(
113113
namespace
114114
)
115+
time.sleep(CHECK_WAIT_AFTER_REF_RESOLVE_SECONDS)
116+
filename = "policy_simple_namespace"
117+
replacements['POLICY_NAMESPACE'] = namespace
115118

116-
117-
replacements = REPLACEMENT_VALUES.copy()
118119
replacements['POLICY_NAME'] = referred_policy_name
119120
replacements['POLICY_DESCRIPTION'] = policy_desc
120121

0 commit comments

Comments
 (0)