예제 #1
0
    def test_ad_attr_merge(self, api_factory):

        api_instance = api_factory.AssayDataApi()

        try:

            ident1 = openapi_client.Attr(attr_type='oxford_id',
                                         attr_value='1234')
            ident2 = openapi_client.Attr(attr_type='roma_id',
                                         attr_value='12345')
            ident3 = openapi_client.Attr(attr_type='lims_id',
                                         attr_value='123456')
            samp1 = openapi_client.AssayDatum(None)
            samp1.attrs = [ident1]
            created1 = api_instance.create_assay_datum(samp1)

            samp2 = openapi_client.AssayDatum(None)
            samp2.attrs = [ident2]
            created2 = api_instance.create_assay_datum(samp2)

            samp3 = openapi_client.AssayDatum(None)
            samp3.attrs = [ident1, ident2, ident3]
            with pytest.raises(ApiException, status=422):
                created3 = api_instance.create_assay_datum(samp3)

            api_instance.delete_assay_datum(created1.assay_datum_id)
            api_instance.delete_assay_datum(created2.assay_datum_id)

        except ApiException as error:
            self.check_api_exception(api_factory,
                                     "AssayDataApi->create_assay_datum", error)
예제 #2
0
    def test_update_attrs(self, api_factory):

        api_instance = api_factory.LocationApi()

        try:

            loc = self.get_next_location()
            loc.attrs = [
                openapi_client.Attr(attr_type='partner_name', attr_value='bhutan', study_name='1234-PV')
            ]
            created = api_instance.create_location(loc)
            looked_up_locs = api_instance.download_partner_location(loc.attrs[0].attr_value)
            looked_up = looked_up_locs.locations[0]
            newloc = copy.deepcopy(loc)
            newloc.attrs = [
                openapi_client.Attr(attr_type='partner_name', attr_value='nepal', study_name='1235-PV')
            ]
            updated = api_instance.update_location(looked_up.location_id, newloc)
            fetched = api_instance.download_location(looked_up.location_id)
            assert updated == fetched, "update response != download response"
            fetched.location_id = None
            assert newloc == fetched, "update != download response"
            api_instance.delete_location(looked_up.location_id)

        except ApiException as error:
            self.check_api_exception(api_factory, "LocationApi->create_location", error)
    def test_ds_attr_merge(self, api_factory):

        api_instance = api_factory.DerivativeSampleApi()

        try:

            ident1 = openapi_client.Attr(attr_type='oxford_id',
                                         attr_value='1234')
            ident2 = openapi_client.Attr(attr_type='roma_id',
                                         attr_value='12345')
            ident3 = openapi_client.Attr(attr_type='lims_id',
                                         attr_value='123456')
            samp1 = openapi_client.DerivativeSample(None)
            samp1.attrs = [ident1]
            created1 = api_instance.create_derivative_sample(samp1)

            samp2 = openapi_client.DerivativeSample(None)
            samp2.attrs = [ident2]
            created2 = api_instance.create_derivative_sample(samp2)

            samp3 = openapi_client.DerivativeSample(None)
            samp3.attrs = [ident1, ident2, ident3]
            with pytest.raises(ApiException, status=422):
                created3 = api_instance.create_derivative_sample(samp3)

            api_instance.delete_derivative_sample(
                created1.derivative_sample_id)
            api_instance.delete_derivative_sample(
                created2.derivative_sample_id)

        except ApiException as error:
            self.check_api_exception(
                api_factory, "DerivativeSampleApi->create_derivative_sample",
                error)
예제 #4
0
    def test_ad_update_duplicate(self, api_factory):

        api_instance = api_factory.AssayDataApi()

        try:

            samp = openapi_client.AssayDatum(None)
            samp.attrs = [
                openapi_client.Attr(attr_type='oxford',
                                    attr_value='12345678',
                                    attr_source='upd')
            ]
            created = api_instance.create_assay_datum(samp)
            looked_up = api_instance.download_assay_data_by_attr(
                'oxford', '12345678')
            looked_up = looked_up.assay_data[0]
            new_samp = openapi_client.AssayDatum(None)
            new_samp.attrs = [
                openapi_client.Attr(attr_type='oxford',
                                    attr_value='123456789',
                                    attr_source='upd')
            ]
            new_created = api_instance.create_assay_datum(new_samp)
            with pytest.raises(ApiException, status=422):
                updated = api_instance.update_assay_datum(
                    looked_up.assay_datum_id, new_samp)

            api_instance.delete_assay_datum(looked_up.assay_datum_id)
            api_instance.delete_assay_datum(new_created.assay_datum_id)

        except ApiException as error:
            self.check_api_exception(api_factory,
                                     "AssayDataApi->create_assay_datum", error)
예제 #5
0
    def create_derivative_sample_from_values(self, values):

        d_sample = openapi_client.DerivativeSample(None)

        idents = []
        if 'derivative_sample_id' in values:
            idents.append(
                openapi_client.Attr('derivative_sample_id',
                                    values['derivative_sample_id'],
                                    self._event_set))

        if 'derivative_sample_source' in values:
            idents.append(
                openapi_client.Attr('derivative_sample_source',
                                    values['derivative_sample_source'],
                                    self._event_set))

        if 'sanger_sample_id' in values:
            idents.append(
                openapi_client.Attr('sanger_sample_id',
                                    values['sanger_sample_id'],
                                    self._event_set))

        if 'sample_lims_id' in values and values['sample_lims_id']:
            idents.append(
                openapi_client.Attr('sanger_lims_id', values['sample_lims_id'],
                                    self._event_set))

        if 'dna_prep' in values:
            d_sample.dna_prep = values['dna_prep']

        d_sample.attrs = idents

        return d_sample
예제 #6
0
    def test_partner_lookup_multiple(self, api_factory):

        api_instance = api_factory.LocationApi()

        try:

            loc = self.get_next_location()
            loc.attrs = [
                openapi_client.Attr(attr_type='partner_name', attr_value='bhutan', study_name='5000-PV')
            ]
            created = api_instance.create_location(loc)
            loc1 = self.get_next_location()
            loc1.attrs = [
                openapi_client.Attr(attr_type='partner_name', attr_value='bhutan', study_name='5001-PV')
            ]
            created1 = api_instance.create_location(loc1)
            looked_up_locs = api_instance.download_partner_location(loc.attrs[0].attr_value)
            assert looked_up_locs.count == 2, 'Wrong number of locations'
            looked_up = looked_up_locs.locations[0]

            api_instance.delete_location(created.location_id)
            api_instance.delete_location(created1.location_id)

        except ApiException as error:
            self.check_api_exception(api_factory, "LocationApi->create_location", error)
예제 #7
0
    def test_duplicate_partner_name(self, api_factory):

        api_instance = api_factory.LocationApi()

        try:

            loc = self.get_next_location()
            loc.attrs = [
                openapi_client.Attr(attr_type='partner_name', attr_value='Kobeni', study_name='5002-PF-MR-ANON'),
            ]

            loc1 = openapi_client.Location(None, 28.46362, 91.49542, 'country',
                                          'Trongsa, Trongsa, Bhutan', 'pv_3_locations.txt', 'BTN')
            loc1.attrs = [
                openapi_client.Attr(attr_type='partner_name', attr_value='Kobeni', study_name='5002-PF-MR-ANON'),
            ]

            created = api_instance.create_location(loc)

            created1 = api_instance.create_location(loc1)

            assert created.location_id != created1.location_id

            api_instance.delete_location(created.location_id)
            api_instance.delete_location(created1.location_id)

        except ApiException as error:
            self.check_api_exception(api_factory, "LocationApi->create_location", error)
예제 #8
0
    def create_location_from_values(self, values, prefix):

        if prefix + 'location_name' not in values:
            #print("No {}location name: {}".format(prefix, values))
            return None, None

        partner_name = values[prefix + 'location_name']

        if not partner_name:
            if prefix + 'latitude' in values and values[prefix + 'latitude']:
                self.report("No location name: ", values)
            return None, None

        #Will have been set to 0000 if not present
        if 'study_id' in values:
            study_id = values['study_id'][:4]

        loc = openapi_client.Location(None)

        loc.attrs = [
            openapi_client.Attr(attr_type='partner_name',
                                attr_value=partner_name,
                                attr_source=self._event_set,
                                study_name=study_id)
        ]
        if prefix + "src_location_id" in values:
            src_lid = openapi_client.Attr(attr_type='src_location_id',
                                          attr_value=values[prefix +
                                                            'src_location_id'],
                                          attr_source=self._event_set,
                                          study_name=study_id)
            loc.attrs.append(src_lid)

        try:
            if prefix + 'latitude' in values and values[prefix + 'latitude']:
                loc.latitude = round(
                    float(Decimal(values[prefix + 'latitude'])), 7)
            if prefix + 'longitude' in values and values[prefix + 'longitude']:
                loc.longitude = round(
                    float(Decimal(values[prefix + 'longitude'])), 7)
        except Exception as excp:
            print(excp)
            pass

        if prefix + 'resolution' in values:
            loc.accuracy = values[prefix + 'resolution']

        if prefix + 'country' in values:
            loc.country = values[prefix + 'country']

        if 'description' in values:
            loc.notes = self._event_set + ' ' + values['description']
        else:
            loc.notes = self._event_set

        #print(values)
        #print(loc)

        return partner_name, loc
    def test_ds_os_attr_lookup(self, api_factory):

        api_instance = api_factory.OriginalSampleApi()
        ds_api_instance = api_factory.DerivativeSampleApi()

        try:

            samp = openapi_client.OriginalSample(None, study_name='7000-MD-UP')
            samp.attrs = [
                openapi_client.Attr(attr_type='ds_os_attr',
                                    attr_value='123456')
            ]
            created = api_instance.create_original_sample(samp)
            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)
            results = ds_api_instance.download_derivative_samples_by_os_attr(
                'ds_os_attr', '123456')

            assert results.count == 2
            assert results.derivative_samples[
                0].derivative_sample_id != results.derivative_samples[
                    1].derivative_sample_id
            assert results.derivative_samples[
                0].original_sample_id == results.derivative_samples[
                    1].original_sample_id
            assert results.derivative_samples[
                0].original_sample_id == created.original_sample_id

            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)

        except ApiException as error:
            self.check_api_exception(
                api_factory, "OriginalSampleApi->create_original_sample",
                error)
예제 #10
0
    def test_ad_update(self, api_factory):

        api_instance = api_factory.AssayDataApi()

        try:

            samp = openapi_client.AssayDatum(None)
            samp.attrs = [
                openapi_client.Attr(attr_type='oxford', attr_value='1234567')
            ]
            created = api_instance.create_assay_datum(samp)
            looked_up = api_instance.download_assay_data_by_attr(
                'oxford', '1234567')
            looked_up = looked_up.assay_data[0]
            new_samp = openapi_client.AssayDatum(None)
            updated = api_instance.update_assay_datum(looked_up.assay_datum_id,
                                                      new_samp)
            fetched = api_instance.download_assay_datum(
                looked_up.assay_datum_id)
            assert updated == fetched, "update response != download response"
            fetched.assay_datum_id = None
            assert new_samp == fetched, "update != download response"
            api_instance.delete_assay_datum(looked_up.assay_datum_id)

        except ApiException as error:
            self.check_api_exception(api_factory,
                                     "AssayDataApi->create_assay_datum", error)
    def test_ds_update(self, api_factory):

        api_instance = api_factory.DerivativeSampleApi()

        try:

            samp = openapi_client.DerivativeSample(None)
            samp.attrs = [
                openapi_client.Attr(attr_type='oxford', attr_value='1234567')
            ]
            created = api_instance.create_derivative_sample(samp)
            looked_up = api_instance.download_derivative_samples_by_attr(
                'oxford', '1234567')
            looked_up = looked_up.derivative_samples[0]
            new_samp = openapi_client.DerivativeSample(None)
            updated = api_instance.update_derivative_sample(
                looked_up.derivative_sample_id, new_samp)
            fetched = api_instance.download_derivative_sample(
                looked_up.derivative_sample_id)
            assert updated == fetched, "update response != download response"
            fetched.derivative_sample_id = None
            assert new_samp == fetched, "update != download response"
            api_instance.delete_derivative_sample(
                looked_up.derivative_sample_id)

        except ApiException as error:
            self.check_api_exception(
                api_factory, "DerivativeSampleApi->create_derivative_sample",
                error)
예제 #12
0
    def test_location_study(self, api_factory):

        api_instance = api_factory.LocationApi()
        study_api = api_factory.StudyApi()

        loc = openapi_client.Location(None, 27.46362, 90.49542, 'country',
                                      'Trongsa, Trongsa, Bhutan',
                                      'pv_3_locations.txt', 'BTN')
        loc.attrs = [
            openapi_client.Attr(attr_type='partner_name',
                                attr_value='bhutan',
                                study_name='2001-MD-UP')
        ]
        try:
            created = api_instance.create_location(loc)
            studies = study_api.download_studies()

            found = False
            for study in studies.studies:
                if study.name == '2001-MD-UP' and study.code == '2001':
                    found = True

            assert found, 'Study does not exist'

            api_instance.delete_location(created.location_id)
        except ApiException as error:
            self.check_api_exception(api_factory,
                                     "LocationApi->create_location", error)
예제 #13
0
    def test_update_duplicate(self, api_factory):

        api_instance = api_factory.LocationApi()

        try:

            loc = self.get_next_location()
            loc = openapi_client.Location(None, 27.46362, 90.49542, 'country',
                                          'Trongsa, Trongsa, Bhutan', 'pv_3_locations.txt', 'BTN')
            loc.attrs = [
                openapi_client.Attr(attr_type='partner_name', attr_value='bhutan', study_name='1234-PV')
            ]
            created = api_instance.create_location(loc)
            looked_up_locs = api_instance.download_partner_location(loc.attrs[0].attr_value)
            looked_up = looked_up_locs.locations[0]
            newloc = openapi_client.Location(None, 28.46362, 91.49542, 'location',
                                        'new_Trongsa, Trongsa, Bhutan', 'new_pv_3_locations.txt', 'IND')
            new_created = api_instance.create_location(newloc)
            with pytest.raises(ApiException, status=422):
                created.location_id = new_created.location_id
                updated = api_instance.update_location(new_created.location_id, created)


            api_instance.delete_location(looked_up.location_id)
            api_instance.delete_location(new_created.location_id)

        except ApiException as error:
            self.check_api_exception(api_factory, "LocationApi->create_location", error)
예제 #14
0
    def test_duplicate_study_name(self, api_factory):

        api_instance = api_factory.LocationApi()

        try:

            loc = self.get_next_location()
            loc.attrs = [
                openapi_client.Attr(attr_type='partner_name', attr_value='Kobeni', study_name='5002-PF-MR-ANON'),
                openapi_client.Attr(attr_type='partner_name', attr_value='location name', study_name='5002')
            ]

            with pytest.raises(ApiException, status=422):
                created = api_instance.create_location(loc)

        except ApiException as error:
            self.check_api_exception(api_factory, "LocationApi->create_location", error)
예제 #15
0
    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
예제 #16
0
    def create_assay_datum_from_values(self, values):

        d_sample = openapi_client.AssayDatum(None)

        idents = []
        if 'assay_datum_id' in values:
            idents.append(
                openapi_client.Attr('assay_datum_id', values['assay_datum_id'],
                                    self._event_set))

        if 'assay_datum_source' in values:
            idents.append(
                openapi_client.Attr('assay_datum_source',
                                    values['assay_datum_source'],
                                    self._event_set))

        if 'ebi_run_acc' in values:
            d_sample.ebi_run_acc = values['ebi_run_acc']

        d_sample.attrs = idents

        return d_sample
예제 #17
0
    def create_individual_from_values(self, values):
        study_id = None
        if 'study_id' in values:
            study_id = values['study_id']

        o_sample = openapi_client.Individual(None)

        idents = []
        if 'patient_id' in values and values['patient_id']:
            idents.append(openapi_client.Attr('patient_id',
                                              str(values['patient_id']),
                                              study_name=study_id,
                                              attr_source=self._event_set))

        if 'donor_source_code' in values and values['donor_source_code']:
            idents.append(openapi_client.Attr('donor_source_code',
                                              str(values['donor_source_code']),
                                              study_name=study_id,
                                              attr_source=self._event_set))
        o_sample.attrs = idents

        return o_sample
    def create_test_samples(self, api_factory, study_name):

        api_instance = api_factory.OriginalSampleApi()
        ds_api_instance = api_factory.DerivativeSampleApi()
        study_api = api_factory.StudyApi()

        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)

        return created, created1, created2
예제 #19
0
    def create_original_sample_from_values(self, values):
        study_id = None
        if 'study_id' in values:
            study_id = values['study_id']

        o_sample = openapi_client.OriginalSample(None, study_name=study_id)

        idents = []
        if 'sample_roma_id' in values:
            idents.append(openapi_client.Attr ('roma_id', values['sample_roma_id'],
                                                     self._event_set))
        if 'sample_partner_id' in values and values['sample_partner_id']:
            idents.append(openapi_client.Attr ('partner_id', values['sample_partner_id'],
                                                     self._event_set))
        if 'sample_partner_id_1' in values and values['sample_partner_id_1']:
            idents.append(openapi_client.Attr ('partner_id', values['sample_partner_id_1'],
                                                     self._event_set))
        if 'sample_oxford_id' in values and values['sample_oxford_id']:
            idents.append(openapi_client.Attr ('oxford_id', values['sample_oxford_id'],
                                                     self._event_set))
        if 'sample_alternate_oxford_id' in values and len(values['sample_alternate_oxford_id']) > 0:
            idents.append(openapi_client.Attr ('alt_oxford_id',
                                                     values['sample_alternate_oxford_id'],
                                                     self._event_set))
        if 'sample_source_id' in values and values['sample_source_id'] and values['sample_source_type']:
            idents.append(openapi_client.Attr (values['sample_source_type'],
                                                     values['sample_source_id'],
                                                     self._event_set))
        if 'sample_source_id1' in values and values['sample_source_id1'] and values['sample_source_type1']:
            idents.append(openapi_client.Attr (values['sample_source_type1'],
                                                     values['sample_source_id1'],
                                                     self._event_set))
        if 'sample_source_id2' in values and values['sample_source_id2'] and values['sample_source_type2']:
            idents.append(openapi_client.Attr (values['sample_source_type2'],
                                                     values['sample_source_id2'],
                                                     self._event_set))

        if 'days_in_culture' in values:
            o_sample.days_in_culture = int(float(values['days_in_culture']))

        if 'species' in values and values['species'] and len(values['species']) > 0:
            o_sample.partner_species = values['species']


        o_sample.attrs = idents

        return o_sample
예제 #20
0
    def get_next_individual(self):

        indiv = openapi_client.Individual(None)

        ident = openapi_client.Attr(attr_type='patient_id',
                                    attr_value=f'Patient{self._individual_number}',
                                    attr_source='TestIndividual',
                                    study_name='6003-PF-MR-ANON')
        indiv.attrs = [
            ident
        ]

        self._individual_number = self._individual_number + 1

        return indiv
    def test_ds_update_duplicate(self, api_factory):

        api_instance = api_factory.DerivativeSampleApi()

        try:

            samp = openapi_client.DerivativeSample(None)
            samp.attrs = [
                openapi_client.Attr(attr_type='oxford',
                                    attr_value='12345678',
                                    attr_source='upd')
            ]
            created = api_instance.create_derivative_sample(samp)
            looked_up = api_instance.download_derivative_samples_by_attr(
                'oxford', '12345678')
            looked_up = looked_up.derivative_samples[0]
            new_samp = openapi_client.DerivativeSample(None)
            new_samp.attrs = [
                openapi_client.Attr(attr_type='oxford',
                                    attr_value='123456789',
                                    attr_source='upd')
            ]
            new_created = api_instance.create_derivative_sample(new_samp)
            with pytest.raises(ApiException, status=422):
                updated = api_instance.update_derivative_sample(
                    looked_up.derivative_sample_id, new_samp)

            api_instance.delete_derivative_sample(
                looked_up.derivative_sample_id)
            api_instance.delete_derivative_sample(
                new_created.derivative_sample_id)

        except ApiException as error:
            self.check_api_exception(
                api_factory, "DerivativeSampleApi->create_derivative_sample",
                error)
예제 #22
0
    def test_create_duplicate_ident(self, api_factory):

        api_instance = api_factory.LocationApi()

        try:

            loc = self.get_next_location()
            ident = openapi_client.Attr(attr_type='partner_name', attr_value='Kobeni', study_name='5003-PF-MR-ANON')
            loc.attrs = [
                ident,
                ident
            ]

            with pytest.raises(ApiException, status=422):
                created1 = api_instance.create_location(loc)

            with pytest.raises(ApiException, status=404):
                looked_up = api_instance.download_gps_location(loc.latitude, loc.longitude)

        except ApiException as error:
            self.check_api_exception(api_factory, "LocationApi->create_location", error)
예제 #23
0
    def test_gps_lookup(self, api_factory):

        api_instance = api_factory.LocationApi()

        try:

            loc = self.get_next_location()
            loc.attrs = [
                openapi_client.Attr(attr_type='partner_name', attr_value='bhutan', study_name='1234-PV')
            ]
            created = api_instance.create_location(loc)
            looked_up = api_instance.download_gps_location(loc.latitude, loc.longitude)

            fetched = looked_up.locations[0]

            assert created == fetched, "create response != download response"
            fetched.location_id = None
            assert loc == fetched, "upload != download response"
            api_instance.delete_location(created.location_id)

        except ApiException as error:
            self.check_api_exception(api_factory, "LocationApi->create_location", error)
예제 #24
0
    def test_get_location_attrs(self, api_factory):

        metadata_api_instance = api_factory.MetadataApi()
        api_instance = api_factory.LocationApi()

        try:
            loc = self.get_next_location()
            loc = openapi_client.Location(None, 27.46362, 90.49542, 'country',
                                          'Trongsa, Trongsa, Bhutan', 'pv_3_locations.txt', 'BTN')
            loc.attrs = [
                openapi_client.Attr(attr_type='partner_name', attr_value='bhutan', study_name='1234-PV')
            ]
            created = api_instance.create_location(loc)

            idents = metadata_api_instance.get_location_attr_types()

            assert 'partner_name' in idents

            api_instance.delete_location(created.location_id)

        except ApiException as error:
            self.check_api_exception(api_factory, "LocationApi->create_location", error)
예제 #25
0
    def test_ad_duplicate_key(self, api_factory):

        api_instance = api_factory.AssayDataApi()

        try:

            samp = openapi_client.AssayDatum(None)
            samp.attrs = [
                openapi_client.Attr(attr_type='oxford',
                                    attr_value='1234',
                                    attr_source='same')
            ]
            created = api_instance.create_assay_datum(samp)

            with pytest.raises(ApiException, status=422):
                created = api_instance.create_assay_datum(samp)

            api_instance.delete_assay_datum(created.assay_datum_id)

        except ApiException as error:
            self.check_api_exception(api_factory,
                                     "AssayDataApi->create_assay_datum", error)
    def test_ds_attr_lookup_encode(self, api_factory):

        api_instance = api_factory.DerivativeSampleApi()

        try:

            test_id = 'MDG/DK_0005'
            samp = openapi_client.DerivativeSample(None)
            samp.attrs = [
                openapi_client.Attr(attr_type='partner_id',
                                    attr_value=test_id,
                                    attr_source='encode')
            ]
            created = api_instance.create_derivative_sample(samp)

            fetched = api_instance.download_derivative_sample(
                created.derivative_sample_id)

            assert created == fetched, "create response != download response"
            fetched.derivative_sample_id = None
            assert samp == fetched, "upload != download response"

            results = api_instance.download_derivative_samples_by_attr(
                'partner_id', urllib.parse.quote_plus(test_id))
            looked_up = results.derivative_samples[0]
            fetched = api_instance.download_derivative_sample(
                looked_up.derivative_sample_id)

            assert created == fetched, "create response != download response"
            fetched.derivative_sample_id = None
            assert samp == fetched, "upload != download response"

            api_instance.delete_derivative_sample(created.derivative_sample_id)

        except ApiException as error:
            self.check_api_exception(
                api_factory, "DerivativeSampleApi->create_derivative_sample",
                error)
예제 #27
0
    def test_gps_lookup_negative(self, api_factory):

        api_instance = api_factory.LocationApi()

        try:

            loc = openapi_client.Location(None, 15.82083, -9.4145, None, None, None, None)
            loc.attrs = [
                openapi_client.Attr(attr_type='partner_name', attr_value='Kobeni', study_name='5002-PF-MR-ANON')
            ]
            created = api_instance.create_location(loc)

            looked_up = api_instance.download_gps_location(15.82083, -9.4145)

            fetched = looked_up.locations[0]

            assert created == fetched, "create response != download response"
            fetched.location_id = None
            assert loc == fetched, "upload != download response"
            api_instance.delete_location(created.location_id)

        except ApiException as error:
            self.check_api_exception(api_factory, "LocationApi->create_location", error)
    def test_ds_duplicate_key(self, api_factory):

        api_instance = api_factory.DerivativeSampleApi()

        try:

            samp = openapi_client.DerivativeSample(None)
            samp.attrs = [
                openapi_client.Attr(attr_type='oxford',
                                    attr_value='1234',
                                    attr_source='same')
            ]
            created = api_instance.create_derivative_sample(samp)

            with pytest.raises(ApiException, status=422):
                created = api_instance.create_derivative_sample(samp)

            api_instance.delete_derivative_sample(created.derivative_sample_id)

        except ApiException as error:
            self.check_api_exception(
                api_factory, "DerivativeSampleApi->create_derivative_sample",
                error)
예제 #29
0
    def test_ad_attr_lookup_encode(self, api_factory):

        api_instance = api_factory.AssayDataApi()

        try:

            test_id = 'MDG/DK_0005'
            samp = openapi_client.AssayDatum(None)
            samp.attrs = [
                openapi_client.Attr(attr_type='partner_id',
                                    attr_value=test_id,
                                    attr_source='encode')
            ]
            created = api_instance.create_assay_datum(samp)

            fetched = api_instance.download_assay_datum(created.assay_datum_id)

            assert created == fetched, "create response != download response"
            fetched.assay_datum_id = None
            assert samp == fetched, "upload != download response"

            results = api_instance.download_assay_data_by_attr(
                'partner_id', urllib.parse.quote_plus(test_id))
            looked_up = results.assay_data[0]
            fetched = api_instance.download_assay_datum(
                looked_up.assay_datum_id)

            assert created == fetched, "create response != download response"
            fetched.assay_datum_id = None
            assert samp == fetched, "upload != download response"

            api_instance.delete_assay_datum(created.assay_datum_id)

        except ApiException as error:
            self.check_api_exception(api_factory,
                                     "AssayDataApi->create_assay_datum", error)
예제 #30
0
    def test_ad_attr_lookup(self, api_factory):

        api_instance = api_factory.AssayDataApi()
        ds_api_instance = api_factory.DerivativeSampleApi()

        try:

            samp1 = openapi_client.DerivativeSample(None)
            created1 = ds_api_instance.create_derivative_sample(samp1)

            samp = openapi_client.AssayDatum(None)
            samp.attrs = [
                openapi_client.Attr(attr_type='oxford', attr_value='123456')
            ]
            samp.derivative_sample_id = created1.derivative_sample_id

            created = api_instance.create_assay_datum(samp)
            results = api_instance.download_assay_data_by_attr(
                'oxford', '123456')
            looked_up = results.assay_data[0]

            fetched = api_instance.download_assay_datum(
                looked_up.assay_datum_id)

            assert created == fetched, "create response != download response"

            fetched.assay_datum_id = None
            assert samp == fetched, "upload != download response"

            api_instance.delete_assay_datum(created.assay_datum_id)
            ds_api_instance.delete_derivative_sample(
                created1.derivative_sample_id)

        except ApiException as error:
            self.check_api_exception(api_factory,
                                     "AssayDataApi->create_assay_datum", error)