def test_add_delete_update_extrafield(self):
     
     doc = BioDesDoc().from_xml(self.create_element())
     self.assertEqual(len(doc.get_extrafields()), 0)
     doc.add_extrafield(key='sleutel', value='some value')
     self.assertEqual(len(doc.get_extrafields()), 1)
     doc.add_extrafield(key='sleutel2', value='some value2')
     self.assertEqual(len(doc.get_extrafields()), 2)
     index1 = 0
     index2 = 1 
     doc.remove_extrafield(index2)
     self.assertEqual(len(doc.get_extrafields()), 1)
     ref1 = doc.update_extrafield(index=index1, key='sleuteldifferent', value='different value')
     self.assertEqual(len(doc.get_extrafields()), 1)
     self.assertEqual(ref1.get('target'), 'sleuteldifferent')
     self.assertEqual(ref1.text, 'different value')
     
     #this is what happens when saveing fom the UI
     doc._replace_extrafields([])
     self.assertEqual(len(doc.get_extrafields()), 0)
     doc.add_extrafield(key='key0', value='some value')
     doc.add_extrafield(key='key1', value='some value2')
     self.assertEqual(doc.get_extrafields()[0].get('target'), 'key0')
     self.assertEqual(doc.get_extrafields()[1].get('target'), 'key1')
     doc._replace_extrafields([('key0', 'some value'), ('key1', 'some value2')])
     self.assertEqual(doc.get_extrafields()[0].get('target'), 'key0')
     self.assertEqual(doc.get_extrafields()[1].get('target'), 'key1')