def test_validate_case_name(rml_order_to_submit: dict, base_store: Store, helpers: StoreHelpers): # GIVEN pool order with a case already all in the database order: OrderIn = OrderIn.parse_obj(rml_order_to_submit, OrderType.RML) sample: RmlSample customer: models.Customer = helpers.ensure_customer( store=base_store, customer_id=order.customer) for sample in order.samples: case = helpers.ensure_case( store=base_store, name=PoolSubmitter.create_case_name(ticket=order.ticket, pool_name=sample.pool), customer=customer, data_analysis=Pipeline.FLUFFY, data_delivery=DataDelivery.STATINA, ) base_store.add_commit(case)
def test_clean_hk_bundle_files_dry_run( caplog, case_id: str, cg_context: CGConfig, cli_runner: CliRunner, helpers: StoreHelpers, mocker, timestamp: datetime, ): # GIVEN a housekeeper api with some alignment files file_path = "path/to_file.cram" tag = "cram" hk_bundle_data = { "name": case_id, "created": timestamp, "expires": timestamp, "files": [ { "path": file_path, "archive": False, "tags": [case_id, tag] }, ], } store = cg_context.status_db case = helpers.ensure_case(store=store, case_id=case_id) helpers.add_analysis(store=store, case=case, started_at=timestamp, completed_at=timestamp) helpers.ensure_hk_bundle(cg_context.housekeeper_api, bundle_data=hk_bundle_data) # WHEN running the clean command in dry run mode caplog.set_level(logging.INFO) result = cli_runner.invoke(hk_bundle_files, ["-c", case_id, "--dry-run", "--tags", tag], obj=cg_context) # THEN assert it exits with success assert result.exit_code == 0 # THEN assert that the files where removed assert f"{file_path} not on disk" in caplog.text
def fixture_rna_store( base_store: Store, helpers: StoreHelpers, rna_case_id: str, dna_case_id: str, ) -> Store: """Populate store with an rna case that is connected to a dna case via sample.subject_id""" store: Store = base_store # an existing RNA case with related sample rna_case = helpers.ensure_case( store=store, name="rna_case", customer=helpers.ensure_customer(store=store), data_analysis=Pipeline.MIP_RNA, data_delivery=DataDelivery.SCOUT, ) rna_case.internal_id = rna_case_id rna_sample_son = helpers.add_sample(store=store, name="rna_son", subject_id="son") rna_sample_daughter = helpers.add_sample( store=store, name="rna_daughter", subject_id="daughter" ) rna_sample_mother = helpers.add_sample(store=store, name="rna_mother", subject_id="mother") rna_sample_father = helpers.add_sample(store=store, name="rna_father", subject_id="father") helpers.add_relationship( store=store, sample=rna_sample_son, case=rna_case, mother=rna_sample_mother, father=rna_sample_father, status="affected", ) helpers.add_relationship( store=store, sample=rna_sample_daughter, case=rna_case, mother=rna_sample_mother, father=rna_sample_father, status="unaffected", ) helpers.add_relationship( store=store, sample=rna_sample_mother, case=rna_case, status="unaffected" ) helpers.add_relationship( store=store, sample=rna_sample_father, case=rna_case, status="affected" ) for link in rna_case.links: link.sample.internal_id = link.sample.name # an existing DNA case with related sample dna_case = helpers.ensure_case( store=store, name="dna_case", customer=helpers.ensure_customer(store=store), data_analysis=Pipeline.MIP_DNA, data_delivery=DataDelivery.SCOUT, ) dna_case.internal_id = dna_case_id dna_sample_son = helpers.add_sample(store=store, name="dna_son", subject_id="son") dna_sample_daughter = helpers.add_sample( store=store, name="dna_daughter", subject_id="daughter" ) dna_sample_mother = helpers.add_sample(store=store, name="dna_mother", subject_id="mother") dna_sample_father = helpers.add_sample(store=store, name="dna_father", subject_id="father") helpers.add_relationship( store=store, sample=dna_sample_son, case=dna_case, mother=dna_sample_mother, father=dna_sample_father, status="affected", ) helpers.add_relationship( store=store, sample=dna_sample_daughter, case=dna_case, mother=dna_sample_mother, father=dna_sample_father, status="unaffected", ) helpers.add_relationship( store=store, sample=dna_sample_mother, case=dna_case, status="unaffected" ) helpers.add_relationship( store=store, sample=dna_sample_father, case=dna_case, status="affected" ) for link in dna_case.links: link.sample.internal_id = link.sample.name store.commit() return store