def test_download_samples_by_study(self, api_factory): api_instance = api_factory.SamplingEventApi() os_api_instance = api_factory.OriginalSampleApi() study_api = api_factory.StudyApi() try: samp = openapi_client.SamplingEvent(None, doc_accuracy='month') created = api_instance.create_sampling_event(samp) osamp = openapi_client.OriginalSample(None, study_name='2006-MD-UP') osamp.sampling_event_id = created.sampling_event_id os_created = os_api_instance.create_original_sample(osamp) events = api_instance.download_sampling_events_by_study( '2006-MD-UP') assert events.count == 1, "Event expected" os_api_instance.delete_original_sample( os_created.original_sample_id) api_instance.delete_sampling_event(created.sampling_event_id) except ApiException as error: self.check_api_exception( api_factory, "SamplingEventApi->create_sampling_event", error)
def test_ds_event_set_lookup(self, api_factory): api_instance = api_factory.OriginalSampleApi() se_api_instance = api_factory.SamplingEventApi() es_api_instance = api_factory.EventSetApi() ds_api_instance = api_factory.DerivativeSampleApi() try: event_set_name = 'test_ds_event_set_lookup' study_code = '7004-MD-UP' created_es = es_api_instance.create_event_set(event_set_name) sampling_event = openapi_client.SamplingEvent(None, date(2017, 10, 10), doc_accuracy='month') created_se = se_api_instance.create_sampling_event(sampling_event) created_set = es_api_instance.create_event_set_item( event_set_name, created_se.sampling_event_id) created, created1, created2 = self.create_test_samples( api_factory, study_code) created.sampling_event_id = created_se.sampling_event_id api_instance.update_original_sample(created.original_sample_id, created) results = ds_api_instance.download_derivative_samples_by_event_set( event_set_name) looked_up = results.derivative_samples[0] fetched = ds_api_instance.download_derivative_sample( looked_up.derivative_sample_id) assert created1 == fetched or created2 == fetched, "create response != download response" assert results.attr_types == ['test1', 'test2'] se_api_instance.delete_sampling_event(created_se.sampling_event_id) es_api_instance.delete_event_set(event_set_name) ds_api_instance.delete_derivative_sample( created1.derivative_sample_id) ds_api_instance.delete_derivative_sample( created2.derivative_sample_id) api_instance.delete_original_sample(created.original_sample_id) with pytest.raises(ApiException, status=404): results = api_instance.download_original_samples_by_event_set( event_set_name) except ApiException as error: self.check_api_exception( api_factory, "OriginalSampleApi->create_original_sample", error)
def test_delete_missing_member(self, api_factory): api_instance = api_factory.EventSetApi() event_api_instance = api_factory.SamplingEventApi() try: event_set = 'EventSet12' created = api_instance.create_event_set(event_set) samp = openapi_client.SamplingEvent(None, date(2017, 10, 10)) created = event_api_instance.create_sampling_event(samp) created_set = api_instance.create_event_set_item( event_set, created.sampling_event_id) api_instance.delete_event_set_item(event_set, created.sampling_event_id) with pytest.raises(ApiException, status=404): api_instance.delete_event_set_item(event_set, created.sampling_event_id) api_instance.delete_event_set(event_set) event_api_instance.delete_sampling_event(created.sampling_event_id) except ApiException as error: self.check_api_exception(api_factory, "EventSetsApi->create_event_set", error)
def create_sampling_event_from_values(self, values): doc = None doc_accuracy = None study_id = None ret = None idents = [] if 'sample_individual_id' in values: idents.append( openapi_client.Attr('individual_id', values['sample_individual_id'], self._event_set)) if 'roma_pk_id' in values: idents.append( openapi_client.Attr('roma_pk_id', values['roma_pk_id'], self._event_set)) if 'doc' in values: if isinstance(values['doc'], datetime.date): doc = values['doc'] else: if 'year' in values: if isinstance(values['year'], datetime.date): doc = values['year'] values['doc_accuracy'] = 'year' if 'doc_accuracy' in values: doc_accuracy = values['doc_accuracy'] if 'study_id' in values: study_id = values['study_id'] samp = openapi_client.SamplingEvent(None, doc=doc) if doc_accuracy: samp.doc_accuracy = doc_accuracy samp.attrs = idents #print(values) #print(samp) return samp
def test_ds_event_set_lookup_no_ds(self, api_factory): api_instance = api_factory.OriginalSampleApi() se_api_instance = api_factory.SamplingEventApi() es_api_instance = api_factory.EventSetApi() ds_api_instance = api_factory.DerivativeSampleApi() try: event_set_name = 'test_ds_event_set_lookup' study_code = '7005-MD-UP' created_es = es_api_instance.create_event_set(event_set_name) sampling_event = openapi_client.SamplingEvent(None, date(2017, 10, 10), doc_accuracy='month') created_se = se_api_instance.create_sampling_event(sampling_event) created_set = es_api_instance.create_event_set_item( event_set_name, created_se.sampling_event_id) if api_factory.is_authorized(None): res = ds_api_instance.download_derivative_samples_by_event_set( event_set_name) assert not res.derivative_samples else: with pytest.raises(ApiException, status=403): ds_api_instance.download_derivative_samples_by_event_set( event_set_name) se_api_instance.delete_sampling_event(created_se.sampling_event_id) es_api_instance.delete_event_set(event_set_name) except ApiException as error: self.check_api_exception( api_factory, "OriginalSampleApi->create_original_sample", error)
def test_create_member(self, api_factory): api_instance = api_factory.EventSetApi() event_api_instance = api_factory.SamplingEventApi() try: event_set = 'EventSet2' created = api_instance.create_event_set(event_set) samp = openapi_client.SamplingEvent(None, date(2017, 10, 10)) created = event_api_instance.create_sampling_event(samp) created_set = api_instance.create_event_set_item( event_set, created.sampling_event_id) if not api_factory.is_authorized(None): pytest.fail( 'Unauthorized call to create_event_set_item succeeded') fetched_set = api_instance.download_event_set(event_set) if not api_factory.is_authorized(None): pytest.fail( 'Unauthorized call to download_event_set succeeded') assert fetched_set.members.sampling_events[ 0].sampling_event_id == created.sampling_event_id assert fetched_set.members.count == 1 api_instance.delete_event_set_item(event_set, created.sampling_event_id) fetched_set = api_instance.download_event_set(event_set) assert fetched_set.members.count == 0 api_instance.delete_event_set(event_set) event_api_instance.delete_sampling_event(created.sampling_event_id) except ApiException as error: self.check_api_exception(api_factory, "EventSetsApi->create_event_set", error)
def create_test_samples(self, api_factory): created_es = None created_se = None created = None created1 = None created2 = None try: api_instance = api_factory.OriginalSampleApi() loc_api_instance = api_factory.LocationApi() se_api_instance = api_factory.SamplingEventApi() es_api_instance = api_factory.EventSetApi() ds_api_instance = api_factory.DerivativeSampleApi() study_api = api_factory.StudyApi() event_set_name = 'test_hist_event_set_lookup' study_name = '8004-MD-UP' created_es = es_api_instance.create_event_set(event_set_name) loc = openapi_client.Location(None, 28.463, 91.495, 'country', 'Trongsa, Trongsa, Bhutan', 'history_locations.txt', 'BTN') location = loc_api_instance.create_location(loc) sampling_event = openapi_client.SamplingEvent(None, date(2017, 10, 10), doc_accuracy='month') sampling_event.location_id = location.location_id created_se = se_api_instance.create_sampling_event(sampling_event) es_api_instance.create_event_set_item(event_set_name, created_se.sampling_event_id) samp = openapi_client.OriginalSample(None, study_name=study_name, partner_species='PF') samp.attrs = [ openapi_client.Attr(attr_type='ds_os_attr', attr_value='123456') ] created = api_instance.create_original_sample(samp) study_detail = study_api.download_study(study_name) study_detail.partner_species[0].taxa = [ openapi_client.Taxonomy(taxonomy_id=5833) ] study_api.update_study(study_name, study_detail) samp1 = openapi_client.DerivativeSample(None) samp2 = openapi_client.DerivativeSample(None) samp1.attrs = [ openapi_client.Attr(attr_type='test1', attr_value='test1', attr_source='ds_os_attr') ] samp2.attrs = [ openapi_client.Attr(attr_type='test2', attr_value='test2', attr_source='ds_os_attr') ] samp1.original_sample_id = created.original_sample_id samp2.original_sample_id = created.original_sample_id created1 = ds_api_instance.create_derivative_sample(samp1) created2 = ds_api_instance.create_derivative_sample(samp2) created.sampling_event_id = created_se.sampling_event_id api_instance.update_original_sample(created.original_sample_id, created) except ApiException as error: self.check_api_exception( api_factory, "OriginalSampleApi->create_original_sample", error) return created_es, created_se, created, created1, created2
def test_update_event_set(self, api_factory): api_instance = api_factory.EventSetApi() event_api_instance = api_factory.SamplingEventApi() try: event_set = 'EventSet8' created = api_instance.create_event_set(event_set) samp = openapi_client.SamplingEvent(None, date(2017, 10, 10)) created = event_api_instance.create_sampling_event(samp) samp2 = openapi_client.SamplingEvent(None, date(2017, 10, 11)) created2 = event_api_instance.create_sampling_event(samp2) created_set = api_instance.create_event_set_item( event_set, created.sampling_event_id) fetched_set1 = api_instance.download_event_set(event_set) assert fetched_set1.members.sampling_events[ 0].sampling_event_id == created.sampling_event_id assert fetched_set1.members.count == 1 assert fetched_set1.notes is None evsn = openapi_client.EventSetNote('note8', 'note8text') fetched_set1.notes = [evsn] fetched_set1.members.sampling_events.append(created2) fetched_set1.members.count = 2 api_instance.update_event_set(event_set, fetched_set1) fetched_set2 = api_instance.download_event_set(event_set) assert fetched_set2.members.count == 2 assert len(fetched_set2.notes) == 1 fetched_set2.members = None api_instance.update_event_set(event_set, fetched_set2) fetched_set3 = api_instance.download_event_set(event_set) assert fetched_set3.members.count == 2 assert len(fetched_set3.notes) == 1 api_instance.delete_event_set_item(event_set, created.sampling_event_id) api_instance.delete_event_set_item(event_set, created2.sampling_event_id) fetched_set = api_instance.download_event_set(event_set) assert fetched_set.members.count == 0 api_instance.delete_event_set(event_set) event_api_instance.delete_sampling_event(created.sampling_event_id) event_api_instance.delete_sampling_event( created2.sampling_event_id) except ApiException as error: self.check_api_exception(api_factory, "EventSetsApi->create_event_set", error)