def test_get_criteria_details(self): config = IniParser().read_ini(MY_INI_FILE) idx = ElasticSettings.idx('GENE_CRITERIA') available_criterias = GeneCriteria.get_available_criterias(config=config)['gene'] idx_type = ','.join(available_criterias) doc_by_idx_type = ElasticUtils.get_rdm_docs(idx, idx_type, size=1) self.assertTrue(len(doc_by_idx_type) > 0) feature_id = getattr(doc_by_idx_type[0], 'qid') criteria_details = GeneCriteria.get_criteria_details(feature_id, config=config) hits = criteria_details['hits'] first_hit = hits[0] _type = first_hit['_type'] _index = first_hit['_index'] _id = first_hit['_id'] _source = first_hit['_source'] disease_tag = _source['disease_tags'][0] self.assertTrue(feature_id, _id) self.assertIn(_type, idx_type) self.assertTrue(idx, _index) self.assertIn(disease_tag, list(_source.keys())) fdetails = _source[disease_tag][0] self.assertIn('fid', fdetails.keys()) self.assertIn('fname', fdetails.keys())
def test_available_criterias(self): config = IniParser().read_ini(MY_INI_FILE) available_criterias = GeneCriteria.get_available_criterias(config=config) expected_dict = {'gene': ['cand_gene_in_study', 'gene_in_region', 'is_gene_in_mhc', 'cand_gene_in_region']} self.assertIsNotNone(available_criterias, 'Criterias as not none') self.assertIn('cand_gene_in_study', available_criterias['gene']) self.assertEqual(available_criterias.keys(), expected_dict.keys(), 'Dic keys equal')
def get_random_feature_id(self): config = IniParser().read_ini(MY_INI_FILE) idx = ElasticSettings.idx('GENE_CRITERIA') available_criterias = GeneCriteria.get_available_criterias(config=config)['gene'] idx_type = ','.join(available_criterias) doc_by_idx_type = ElasticUtils.get_rdm_docs(idx, idx_type, size=1) self.assertTrue(len(doc_by_idx_type) > 0) feature_id = getattr(doc_by_idx_type[0], 'qid') return feature_id