def test_discard_taxon_label_error(self): tns = TaxonNamespace(self.str_labels) key = "zzz" assert key not in self.str_labels try: tns.discard_taxon_label(key) except LookupError: self.fail() else: self.validate_taxon_concepts(tns, self.str_labels)
def test_discard_taxon_label(self): taxa = [Taxon(s) for s in self.str_labels] tns = TaxonNamespace(taxa) expected = taxa[:] for idx, label in enumerate(set(self.str_labels)): tns.discard_taxon_label(label) for t in taxa: if t.label == label and t in expected: expected.remove(t) self.assertEqual(len(tns), len(expected)) for t1, t2 in zip(tns, expected): self.assertIs(t1, t2)
def test_discard_taxon_label_case_insensitive(self): ucase_labels = [s.upper() for s in self.str_labels] assert ucase_labels assert ucase_labels != self.str_labels taxa = [Taxon(s) for s in self.str_labels] tns = TaxonNamespace(taxa) expected = taxa[:] # default: case-insensitive for idx, label in enumerate(set(ucase_labels)): tns.discard_taxon_label(label) for t in taxa: if t.label.upper() == label.upper() and t in expected: expected.remove(t) self.assertEqual(len(tns), len(expected)) for t1, t2 in zip(tns, expected): self.assertIs(t1, t2)
def test_discard_taxon_label_case_sensitive(self): ucase_labels = [s.upper() for s in self.str_labels] assert ucase_labels assert ucase_labels != self.str_labels taxa = [Taxon(s) for s in self.str_labels] tns = TaxonNamespace(taxa) expected = taxa[:] # test: case sensitive tns.is_case_sensitive = True for idx, label in enumerate(set(ucase_labels)): if label != label.lower(): x1 = len(tns) try: tns.discard_taxon_label(label) except LookupError: self.fail() else: self.assertEqual(len(tns), x1)