def test_dev_server_get_patients() -> None: clean_fhir_server() url = "http://fhir:3000/4_0_0" fhir_client = FhirClient() fhir_client = fhir_client.url(url).resource("Patient") resource = { "resourceType": "Patient", "id": "12355", "meta": { "security": [{ "system": "https://www.icanbwell.com/access", "code": "bwell" }] }, } merge_response: FhirMergeResponse = fhir_client.merge( [json.dumps(resource)]) print(merge_response.responses) assert merge_response.status == 200, merge_response.responses assert merge_response.responses[0][ "created"] is True, merge_response.responses fhir_client = fhir_client.url(url).resource("Patient") response: FhirGetResponse = fhir_client.get() print(response.responses) responses_ = json.loads(response.responses)[0] assert responses_["id"] == resource["id"] assert responses_["resourceType"] == resource["resourceType"]
def test_fhir_client_patient_merge() -> None: test_name = "test_fhir_client_patient_merge" mock_server_url = "http://mock-server:1080" mock_client: MockServerFriendlyClient = MockServerFriendlyClient( base_url=mock_server_url) relative_url: str = test_name absolute_url: str = mock_server_url + "/" + test_name mock_client.clear(f"/{test_name}/*.*") mock_client.reset() response_text_1: List[Dict[str, int]] = [{"created": 1, "updated": 0}] resource = {"resourceType": "Patient", "id": "12355"} # request_body = {"resourceType": "Bundle", "entry": [{"resource": resource}]} mock_client.expect( mock_request( path=f"/{relative_url}/Patient/1/$merge", method="POST", body=json.dumps([resource]), ), mock_response(body=json.dumps(response_text_1)), timing=times(1), ) fhir_client = FhirClient() fhir_client = fhir_client.url(absolute_url).resource("Patient") response: FhirMergeResponse = fhir_client.merge([json.dumps(resource)]) print(response.responses) assert response.responses == response_text_1
def test_fhir_client_patient_merge() -> None: with requests_mock.Mocker() as mock: url = "http://foo" request_data = {"resourceType": "Patient", "id": "12355"} response_json = [{"created": 1, "updated": 0}] def custom_matcher(request: Any) -> Optional[Response]: if request.path == "/patient/1/$merge" and request.text == json.dumps( [request_data]): resp: Response = requests.Response() resp.status_code = 200 return resp return None mock.post( f"{url}/Patient/1/$merge", additional_matcher=custom_matcher, text=f"{json.dumps(response_json)}", ) fhir_client = FhirClient() fhir_client = fhir_client.url(url).resource("Patient") response: FhirMergeResponse = fhir_client.merge( [json.dumps(request_data)]) print(response.responses) assert response.responses == response_json