def test_relations(self): doc = BioDesDoc().from_xml(self.create_element()) doc.add_relation(person="Kwik", relation="partner") doc.add_relation(person="Kwek", relation="child") doc.add_relation(person="Kwak", relation="father") doc.add_relation(person="Donald", relation="mother") doc.add_relation(person="Dagobert", relation="parent") self.assertEqual(doc.get_relation('partner'), ['Kwik']) self.assertEqual(doc.get_relation('child'), ['Kwek']) self.assertEqual(doc.get_relation('father'), ['Kwak']) self.assertEqual(doc.get_relation('mother'), ['Donald']) self.assertEqual(doc.get_relation('parent'), ['Dagobert']) #make sure we are not reading the other names self.assertEqual(len(doc.get_names()), 1) self.assertEqual(len(doc.get_relations()), 5) ls = [(el_relation.get('name'), el_person[0].text) for (el_relation, el_person) in doc.get_relations()] self.assertTrue(('child', 'Kwek') in ls, ls) el_relation, el_person = doc.get_relations()[1] type = el_relation.get('name') name = el_person[0].text index = el_relation.getparent().index(el_relation) #see if deleting and re-adding is sane doc.remove_relation(index) self.assertEqual(len(doc.get_relations()), 4) doc.add_relation(person=name, relation=type) self.assertEqual(len(doc.get_relations()), 5)