Skip to content

Commit e2628c3

Browse files
authored
chore: update RBAC test factory to use fixture based data (#879)
* move API related fixtures one level up in directory to be usable for dab_rbac tests * update ModelFactory in RBAC conftest to generate post data using existing fixtures * minor renaming of fixtures across multiple test modules
1 parent 8b2d498 commit e2628c3

26 files changed

+1540
-1473
lines changed

tests/integration/api/conftest.py

Lines changed: 0 additions & 623 deletions
Large diffs are not rendered by default.

tests/integration/api/test_activation.py

Lines changed: 74 additions & 62 deletions
Large diffs are not rendered by default.

tests/integration/api/test_activation_instance.py

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,20 @@
3030
@pytest.mark.django_db
3131
def test_list_activation_instances(
3232
default_activation_instances: List[models.RulebookProcess],
33-
client: APIClient,
33+
admin_client: APIClient,
3434
):
35-
response = client.get(f"{api_url_v1}/activation-instances/")
35+
response = admin_client.get(f"{api_url_v1}/activation-instances/")
3636
assert response.status_code == status.HTTP_200_OK
3737
assert len(response.data["results"]) == len(default_activation_instances)
3838

3939

4040
@pytest.mark.django_db
4141
def test_list_activation_instances_filter_name(
4242
default_activation_instances: List[models.RulebookProcess],
43-
client: APIClient,
43+
admin_client: APIClient,
4444
):
4545
filter_name = default_activation_instances[0].name
46-
response = client.get(
46+
response = admin_client.get(
4747
f"{api_url_v1}/activation-instances/?name={filter_name}"
4848
)
4949
assert response.status_code == status.HTTP_200_OK
@@ -57,10 +57,10 @@ def test_list_activation_instances_filter_name(
5757
@pytest.mark.django_db
5858
def test_list_activation_instances_filter_status(
5959
default_activation_instances: List[models.RulebookProcess],
60-
client: APIClient,
60+
admin_client: APIClient,
6161
):
6262
filter_name = enums.ActivationStatus.FAILED
63-
response = client.get(
63+
response = admin_client.get(
6464
f"{api_url_v1}/activation-instances/?status={filter_name}"
6565
)
6666
assert response.status_code == status.HTTP_200_OK
@@ -74,30 +74,32 @@ def test_list_activation_instances_filter_status(
7474
@pytest.mark.django_db
7575
def test_retrieve_activation_instance(
7676
default_activation_instances: List[models.RulebookProcess],
77-
client: APIClient,
77+
admin_client: APIClient,
7878
):
7979
instance = default_activation_instances[0]
80-
response = client.get(f"{api_url_v1}/activation-instances/{instance.id}/")
80+
response = admin_client.get(
81+
f"{api_url_v1}/activation-instances/{instance.id}/"
82+
)
8183

8284
assert response.status_code == status.HTTP_200_OK
8385
assert_activation_instance_data(response.json(), instance)
8486

8587

8688
@pytest.mark.django_db
87-
def test_retrieve_activation_instance_not_exist(client: APIClient):
88-
response = client.get(f"{api_url_v1}/activation-instances/42/")
89+
def test_retrieve_activation_instance_not_exist(admin_client: APIClient):
90+
response = admin_client.get(f"{api_url_v1}/activation-instances/42/")
8991
assert response.status_code == status.HTTP_404_NOT_FOUND
9092

9193

9294
@pytest.mark.django_db
9395
def test_list_logs_from_activation_instance(
9496
default_activation_instances: List[models.RulebookProcess],
9597
default_activation_instance_logs: List[models.RulebookProcessLog],
96-
client: APIClient,
98+
admin_client: APIClient,
9799
):
98100
instance = default_activation_instances[0]
99101

100-
response = client.get(
102+
response = admin_client.get(
101103
f"{api_url_v1}/activation-instances/{instance.id}/logs/"
102104
)
103105
assert response.status_code == status.HTTP_200_OK
@@ -118,11 +120,11 @@ def test_list_logs_from_activation_instance(
118120
def test_list_activation_instance_logs_filter(
119121
default_activation_instances: List[models.RulebookProcess],
120122
default_activation_instance_logs: List[models.RulebookProcessLog],
121-
client: APIClient,
123+
admin_client: APIClient,
122124
):
123125
instance = default_activation_instances[0]
124126
filter_log = "log-1"
125-
response = client.get(
127+
response = admin_client.get(
126128
f"{api_url_v1}/activation-instances/{instance.id}"
127129
f"/logs/?log={filter_log}"
128130
)
@@ -138,12 +140,12 @@ def test_list_activation_instance_logs_filter(
138140
def test_list_activation_instance_logs_filter_non_existent(
139141
default_activation_instances: List[models.RulebookProcess],
140142
default_activation_instance_logs: List[models.RulebookProcessLog],
141-
client: APIClient,
143+
admin_client: APIClient,
142144
):
143145
instance = default_activation_instances[0]
144146
filter_log = "doesn't exist"
145147

146-
response = client.get(
148+
response = admin_client.get(
147149
f"{api_url_v1}/activation-instances/{instance.id}"
148150
f"/logs/?log={filter_log}"
149151
)

tests/integration/api/test_activation_with_credential.py

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ def test_validate_for_aap_credential(
114114

115115
@pytest.mark.django_db
116116
def test_is_activation_valid_with_token_and_run_job_template(
117-
default_de: models.DecisionEnvironment,
117+
default_decision_environment: models.DecisionEnvironment,
118118
default_rulebook_with_run_job_template: models.Rulebook,
119119
default_project: models.Project,
120120
default_user_awx_token: models.AwxToken,
@@ -125,7 +125,7 @@ def test_is_activation_valid_with_token_and_run_job_template(
125125
name="test",
126126
description="test activation",
127127
rulebook_id=default_rulebook_with_run_job_template.id,
128-
decision_environment_id=default_de.id,
128+
decision_environment_id=default_decision_environment.id,
129129
project_id=default_project.id,
130130
awx_token_id=default_user_awx_token.id,
131131
user_id=default_user.id,
@@ -158,7 +158,7 @@ def test_is_activation_valid_with_aap_credential_and_run_job_template(
158158

159159
@pytest.mark.django_db
160160
def test_is_activation_valid_with_run_job_template_and_no_token_no_credential(
161-
default_de: models.DecisionEnvironment,
161+
default_decision_environment: models.DecisionEnvironment,
162162
default_rulebook_with_run_job_template: models.Rulebook,
163163
default_project: models.Project,
164164
default_user: models.User,
@@ -168,7 +168,7 @@ def test_is_activation_valid_with_run_job_template_and_no_token_no_credential(
168168
name="test",
169169
description="test activation",
170170
rulebook_id=default_rulebook_with_run_job_template.id,
171-
decision_environment_id=default_de.id,
171+
decision_environment_id=default_decision_environment.id,
172172
project_id=default_project.id,
173173
user_id=default_user.id,
174174
)
@@ -186,7 +186,7 @@ def test_is_activation_valid_with_updated_credential(
186186
default_activation: models.Activation,
187187
default_organization: models.Organization,
188188
user_credential_type: models.CredentialType,
189-
client: APIClient,
189+
admin_client: APIClient,
190190
preseed_credential_types,
191191
):
192192
credential = models.EdaCredential.objects.create(
@@ -202,7 +202,7 @@ def test_is_activation_valid_with_updated_credential(
202202
)
203203
default_activation.eda_credentials.add(credential)
204204

205-
response = client.post(
205+
response = admin_client.post(
206206
f"{api_url_v1}/activations/{default_activation.id}/restart/"
207207
)
208208
assert response.status_code == status.HTTP_204_NO_CONTENT
@@ -215,7 +215,7 @@ def test_is_activation_valid_with_updated_credential(
215215

216216
@pytest.mark.django_db
217217
def test_create_activation_with_eda_credential(
218-
client: APIClient,
218+
admin_client: APIClient,
219219
kafka_credential_type: models.CredentialType,
220220
activation_payload: Dict[str, Any],
221221
preseed_credential_types,
@@ -233,12 +233,14 @@ def test_create_activation_with_eda_credential(
233233
"inputs": {"sasl_username": "adam", "sasl_password": "secret"},
234234
"credential_type_id": kafka_credential_type.id,
235235
}
236-
response = client.post(
236+
response = admin_client.post(
237237
f"{api_url_v1}/eda-credentials/", data=test_eda_credential
238238
)
239239
test_activation["eda_credentials"] = [response.data["id"]]
240240

241-
response = client.post(f"{api_url_v1}/activations/", data=test_activation)
241+
response = admin_client.post(
242+
f"{api_url_v1}/activations/", data=test_activation
243+
)
242244
assert response.status_code == status.HTTP_201_CREATED
243245
data = response.data
244246
assert data["eda_credentials"][0]["credential_type"] == {
@@ -266,15 +268,15 @@ def test_create_activation_with_eda_credential(
266268

267269
@pytest.mark.django_db
268270
def test_create_activation_with_key_conflict(
269-
client: APIClient,
270-
default_de: models.DecisionEnvironment,
271+
admin_client: APIClient,
272+
default_decision_environment: models.DecisionEnvironment,
271273
default_rulebook: models.Rulebook,
272274
kafka_credential_type: models.CredentialType,
273275
preseed_credential_types,
274276
):
275277
test_activation = {
276278
"name": "test_activation",
277-
"decision_environment_id": default_de.id,
279+
"decision_environment_id": default_decision_environment.id,
278280
"rulebook_id": default_rulebook.id,
279281
"extra_var": OVERLAP_EXTRA_VAR,
280282
}
@@ -286,7 +288,9 @@ def test_create_activation_with_key_conflict(
286288
)
287289
test_activation["eda_credentials"] = [test_eda_credential.id]
288290

289-
response = client.post(f"{api_url_v1}/activations/", data=test_activation)
291+
response = admin_client.post(
292+
f"{api_url_v1}/activations/", data=test_activation
293+
)
290294
assert response.status_code == status.HTTP_400_BAD_REQUEST
291295
assert (
292296
"Key: sasl_plain_password already exists "
@@ -297,7 +301,7 @@ def test_create_activation_with_key_conflict(
297301

298302
@pytest.mark.django_db
299303
def test_create_activation_with_conflict_credentials(
300-
client: APIClient,
304+
admin_client: APIClient,
301305
activation_payload: Dict[str, Any],
302306
user_credential_type: models.CredentialType,
303307
preseed_credential_types,
@@ -328,7 +332,9 @@ def test_create_activation_with_conflict_credentials(
328332
eda_credential_ids = [credential.id for credential in eda_credentials]
329333
test_activation["eda_credentials"] = eda_credential_ids
330334

331-
response = client.post(f"{api_url_v1}/activations/", data=test_activation)
335+
response = admin_client.post(
336+
f"{api_url_v1}/activations/", data=test_activation
337+
)
332338
assert response.status_code == status.HTTP_400_BAD_REQUEST
333339
assert (
334340
"Key: sasl_password already exists "
@@ -339,15 +345,15 @@ def test_create_activation_with_conflict_credentials(
339345

340346
@pytest.mark.django_db
341347
def test_create_activation_without_extra_vars_single_credential(
342-
client: APIClient,
343-
default_de: models.DecisionEnvironment,
348+
admin_client: APIClient,
349+
default_decision_environment: models.DecisionEnvironment,
344350
default_rulebook: models.Rulebook,
345351
user_credential_type: models.CredentialType,
346352
preseed_credential_types,
347353
):
348354
test_activation = {
349355
"name": "test_activation",
350-
"decision_environment_id": default_de.id,
356+
"decision_environment_id": default_decision_environment.id,
351357
"rulebook_id": default_rulebook.id,
352358
"extra_var": None,
353359
}
@@ -362,7 +368,9 @@ def test_create_activation_without_extra_vars_single_credential(
362368
test_activation["eda_credentials"] = eda_credential_ids
363369

364370
assert not test_activation["extra_var"]
365-
response = client.post(f"{api_url_v1}/activations/", data=test_activation)
371+
response = admin_client.post(
372+
f"{api_url_v1}/activations/", data=test_activation
373+
)
366374
assert response.status_code == status.HTTP_201_CREATED
367375
assert response.data["extra_var"]
368376
extra_var = yaml.safe_load(response.data["extra_var"])
@@ -372,15 +380,15 @@ def test_create_activation_without_extra_vars_single_credential(
372380

373381
@pytest.mark.django_db
374382
def test_create_activation_without_extra_vars_duplicate_credentials(
375-
client: APIClient,
376-
default_de: models.DecisionEnvironment,
383+
admin_client: APIClient,
384+
default_decision_environment: models.DecisionEnvironment,
377385
default_rulebook: models.Rulebook,
378386
user_credential_type: models.CredentialType,
379387
preseed_credential_types,
380388
):
381389
test_activation = {
382390
"name": "test_activation",
383-
"decision_environment_id": default_de.id,
391+
"decision_environment_id": default_decision_environment.id,
384392
"rulebook_id": default_rulebook.id,
385393
}
386394

@@ -402,7 +410,9 @@ def test_create_activation_without_extra_vars_duplicate_credentials(
402410
eda_credential_ids = [credential.id for credential in eda_credentials]
403411
test_activation["eda_credentials"] = eda_credential_ids
404412

405-
response = client.post(f"{api_url_v1}/activations/", data=test_activation)
413+
response = admin_client.post(
414+
f"{api_url_v1}/activations/", data=test_activation
415+
)
406416
assert response.status_code == status.HTTP_400_BAD_REQUEST
407417
assert (
408418
"Key: sasl_password already exists in extra var. It conflicts with"

0 commit comments

Comments
 (0)