1+ import copy
2+
13import pytest
24
3- from nrlf .core .constants import PERMISSION_ALLOW_ALL_POINTER_TYPES , V2Headers
45from tests .smoke .environment import ConnectMode , EnvironmentConfig , SmokeTestParameters
56from 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
1211def 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
0 commit comments