def test_remove_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.remove_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_remove_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[:] for idx, label in enumerate(set(ucase_labels)): if label != label.lower(): with self.assertRaises(LookupError): tns.is_case_sensitive = True tns.remove_taxon_label(label) tns.is_case_sensitive = False tns.remove_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_remove_taxon_label_error(self): tns = TaxonNamespace(self.str_labels) key = "zzz" assert key not in self.str_labels with self.assertRaises(LookupError): tns.remove_taxon_label(key)