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.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_sqlImednetJobSensorandImednetExportOperatorfromapache_airflow_providers_imednetImednetHookfor connection retrieval