Live (End-to-End) Test Plan
These tests execute against a real iMednet environment. They are skipped by default
and require IMEDNET_RUN_E2E=1 with valid credentials (see
Configuration). Each item below should be covered by a dedicated test case
so failures are easy to diagnose.
Endpoints
For every endpoint the list and get operations should be verified:
StudiesEndpointSitesEndpointSubjectsEndpointRecordsEndpointIntervalsEndpointVisitsEndpointVariablesEndpointFormsEndpointQueriesEndpointRecordRevisionsEndpointUsersEndpointJobsEndpointCodingsEndpointJobsEndpoint.getshould also be validated independently using a known batch ID.RecordsEndpoint.createshould be exercised to confirm record submission and thatJobsEndpoint.getretrieves the resulting job status.
Every synchronous test should have an asynchronous counterpart using
AsyncImednetSDK. For example, AsyncImednetSDK.studies.async_list() mirrors
ImednetSDK.studies.list() and should verify the same behaviors.
SDK Utilities
Common convenience methods on ImednetSDK also deserve coverage:
get_studiesget_recordsget_sitesget_subjectsget_formsget_intervalsget_variablesget_visitsget_codingsget_queriesget_record_revisionsget_usersget_jobpoll_job
Workflow Helpers
The workflow utilities in imednet.workflows should be tested using small,
non-destructive calls. Each bullet corresponds to a separate live test.
get_study_structureandasync_get_study_structureRegisterSubjectsWorkflow.register_subjectsDataExtractionWorkflow.extract_records_by_criteriaDataExtractionWorkflow.extract_audit_trailSubjectDataWorkflow.get_all_subject_dataQueryManagementWorkflow.get_open_queriesQueryManagementWorkflow.get_queries_for_subjectQueryManagementWorkflow.get_queries_by_siteQueryManagementWorkflow.get_query_state_countsRecordMapper.dataframeRecordUpdateWorkflow.create_or_update_recordsRecordUpdateWorkflow.register_subjectRecordUpdateWorkflow.update_scheduled_recordRecordUpdateWorkflow.create_new_record
CLI Commands
Live tests should execute the CLI via typer.testing.CliRunner.
Run each command with minimal arguments and verify a successful exit code:
imednet studies listimednet sites list <STUDY_KEY>imednet subjects list <STUDY_KEY>imednet records list <STUDY_KEY>imednet jobs status <STUDY_KEY> <BATCH_ID>imednet jobs wait <STUDY_KEY> <BATCH_ID>imednet export parquet <STUDY_KEY> tmp.parquetimednet export csv <STUDY_KEY> tmp.csvimednet export excel <STUDY_KEY> tmp.xlsximednet export json <STUDY_KEY> tmp.jsonimednet export sql <STUDY_KEY> TABLE sqlite:///test.dbimednet workflows extract-records <STUDY_KEY>
Integrations
The integration helpers require validation using temporary files or buckets:
export_to_csvexport_to_excelexport_to_jsonexport_to_parquetexport_to_sqlImednetToS3OperatorandImednetJobSensorfromimednet.integrations.airflowImednetExportOperatorfromimednet.integrations.airflowImednetHookfor connection retrieval