def test_extents(self,get_g): from lxml import etree xml = """ <region id='a'><extents n='10' s='-10' e='10' w='-10'/></region> """ tree = etree.parse(StringIO(xml)) r_node = tree.getroot() r = Region(r_node) e = r.get_extents() self.assertEqual(e['n'], 10) e = {'n':1,'s':0,'e':2,'w':1} r.set_extents(e) self.assertEqual(r.get_extents(),e) xml = """ <region id='a'></region> """ tree = etree.parse(StringIO(xml)) r_node = tree.getroot() r = Region(r_node) e = r.get_extents() self.assertEqual(e, None) e = {'n':1,'s':0,'e':2,'w':1} r.set_extents(e) self.assertEqual(r.get_extents(),e) bade = {'k':1,'s':0,'e':2,'w':1} self.assertRaises(KeyError,r.set_extents,bade) self.assertEqual(r.get_extents(),e) bade = {'n':1,'s':0,'roar':2,'w':1} self.assertRaises(KeyError,r.set_extents,bade) self.assertEqual(r.get_extents(),e) r.update_xml() # does nothing