Skip to content

Commit ef29c25

Browse files
NRL-2100 Fixup 1Dsync tests to use correct ods codes and make smoke test clients better
1 parent e0aa574 commit ef29c25

3 files changed

Lines changed: 26 additions & 50 deletions

File tree

tests/smoke/environment.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def to_client_config(self, parameters: SmokeTestParameters):
5151
}
5252
)
5353

54-
smoketest_id = str(uuid.uuid4())
54+
smoketest_id = f"SMOKETEST-{str(uuid.uuid4())}"
5555
env_resources_name = self.env_name.split("-")[0]
5656

5757
if self.connect_mode == ConnectMode.INTERNAL.value:
@@ -60,8 +60,6 @@ def to_client_config(self, parameters: SmokeTestParameters):
6060
custom_headers={
6161
"X-Request-Id": smoketest_id,
6262
"NHSD-Correlation-Id": f"{smoketest_id}.smoketest.{self.stack_name}.{self.env_name}",
63-
"X-Proxygen-App-NRL-App-ID": parameters.nrlf_app_id,
64-
"NHSD-End-User-Organisation-ODS": parameters.ods_code,
6563
},
6664
connection_metadata=connection_metadata,
6765
client_cert=(
Lines changed: 24 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,23 @@
1+
import copy
2+
13
import pytest
24

3-
from nrlf.core.constants import PERMISSION_ALLOW_ALL_POINTER_TYPES, V2Headers
45
from tests.smoke.environment import ConnectMode, EnvironmentConfig, SmokeTestParameters
56
from tests.smoke.setup import build_document_reference
6-
from tests.utilities.api_clients import ConnectionMetadata, ProducerTestClient
7-
8-
v2_1dsync_app_id = "SMOKETEST_1DSYNC_V1"
7+
from tests.utilities.api_clients import ProducerTestClient
98

109

1110
@pytest.fixture
1211
def producer_client_1dsync(
1312
environment_config: EnvironmentConfig, smoke_test_parameters: SmokeTestParameters
1413
) -> ProducerTestClient:
15-
client_config = environment_config.to_client_config(smoke_test_parameters)
16-
14+
custom_smoke_test_parameters = copy.copy(smoke_test_parameters)
1715
if environment_config.connect_mode == ConnectMode.INTERNAL.value:
18-
# Use app-level perms in internal mode
19-
connection_metadata = ConnectionMetadata.model_validate(
20-
{
21-
"nrl.permissions": [PERMISSION_ALLOW_ALL_POINTER_TYPES],
22-
"nrl.app-id": v2_1dsync_app_id,
23-
"nrl.ods-code": smoke_test_parameters.ods_code,
24-
"client_rp_details": {
25-
"developer.app.name": smoke_test_parameters.apigee_app_name,
26-
"developer.app.id": smoke_test_parameters.apigee_app_id,
27-
},
28-
}
29-
)
30-
client_config.connection_metadata = connection_metadata
31-
client_config.custom_headers[V2Headers.X_PROXYGEN_APP_NRL_APP_ID] = (
32-
v2_1dsync_app_id
33-
)
34-
else:
35-
# Can't use app-level perms here without setting up another apigee app, use ODS instead
36-
client_config.custom_headers["NHSD-End-User-Organisation-ODS"] = (
37-
"SMOKETEST1DSYNC"
38-
)
16+
custom_smoke_test_parameters.nrlf_app_id = "SMOKETEST1DSYNC"
17+
18+
custom_smoke_test_parameters.ods_code = "SMOKETEST1DSYNC"
19+
20+
client_config = environment_config.to_client_config(custom_smoke_test_parameters)
3921

4022
return ProducerTestClient(config=client_config)
4123

@@ -48,29 +30,25 @@ def test_smoke_1dsync_upsert_delete(
4830
"""
4931
Smoke test scenario for 1dsync upsert and delete behaviour
5032
"""
51-
test_ods_code = producer_client_1dsync.config.custom_headers.get(
52-
"NHSD-End-User-Organisation-ODS"
53-
)
33+
test_ods_code = "SMOKETEST1DSYNC"
5434
test_docref = build_document_reference(
5535
nhs_number=test_nhs_numbers[0], custodian=test_ods_code
5636
)
5737

5838
for attempts in range(0, 5):
59-
try:
60-
test_docref.id = (
61-
f"{test_ods_code}-smoketest_1dsync_upsert_delete_pointer_{attempts}"
62-
)
63-
upsert_response = producer_client_1dsync.upsert(
64-
test_docref.model_dump(exclude_none=True)
65-
)
66-
assert upsert_response.ok
67-
assert upsert_response.headers["Location"].split("/")[-1] == test_docref.id
68-
finally:
69-
delete_response = producer_client_1dsync.delete(test_docref.id)
39+
test_docref.id = (
40+
f"{test_ods_code}-smoketest_1dsync_upsert_delete_pointer_{attempts}"
41+
)
42+
upsert_response = producer_client_1dsync.upsert(
43+
test_docref.model_dump(exclude_none=True)
44+
)
45+
assert upsert_response.ok
46+
assert upsert_response.headers["Location"].split("/")[-1] == test_docref.id
47+
delete_response = producer_client_1dsync.delete(test_docref.id)
7048

71-
assert (
72-
delete_response.ok
73-
), f"Failed to delete document reference with ID: {test_docref.id}. It will need to be deleted manually if it still exists."
49+
assert (
50+
delete_response.ok
51+
), f"Failed to delete document reference with ID: {test_docref.id}. It will need to be deleted manually if it still exists."
7452

75-
read_response = producer_client_1dsync.read(test_docref.id)
76-
assert read_response.status_code == 404
53+
read_response = producer_client_1dsync.read(test_docref.id)
54+
assert read_response.status_code == 404

tests/smoke/scenarios/1dsync_upsert_delete_v1.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from tests.smoke.setup import build_document_reference
66
from tests.utilities.api_clients import ConnectionMetadata, ProducerTestClient
77

8-
v1_1dsync_app_id = "SMOKETEST_1DSYNC_V1"
8+
v1_1dsync_app_id = "SMOKETEST1DSYNCV1"
99

1010

1111
@pytest.fixture

0 commit comments

Comments
 (0)