def test_basic(self): span = SimpleXMLElement( '<span><a href="python.org.ar">pyar</a>' '<prueba><i>1</i><float>1.5</float></prueba></span>') span1 = SimpleXMLElement('<span><a href="google.com">google</a>' '<a>yahoo</a><a>hotmail</a></span>') self.eq([str(a) for a in span1.a()], ['google', 'yahoo', 'hotmail']) span1.add_child('a', 'altavista') span1.b = "ex msn" d = {'href': 'http://www.bing.com/', 'alt': 'Bing'} span1.b[:] = d self.eq(sorted([(k, v) for k, v in span1.b[:]]), sorted(d.items())) xml = ('<?xml version="1.0" encoding="UTF-8"?><span>' '<a href="google.com">google</a><a>yahoo</a>' '<a>hotmail</a><a>altavista</a>' '<b alt="Bing" href="http://www.bing.com/">ex msn</b></span>') self.eq(span1.as_xml(), xml if PY2 else xml.encode('utf-8')) self.assertTrue('b' in span1) span.import_node(span1) xml = ( '<?xml version="1.0" encoding="UTF-8"?><span>' '<a href="python.org.ar">pyar</a><prueba><i>1</i>' '<float>1.5</float></prueba><span><a href="google.com">google</a>' '<a>yahoo</a><a>hotmail</a><a>altavista</a>' '<b alt="Bing" href="http://www.bing.com/">ex msn</b>' '</span></span>') self.eq(span.as_xml(), xml if PY2 else xml.encode('utf-8')) types = {'when': datetime.datetime} when = datetime.datetime.now() dt = SimpleXMLElement('<when>%s</when>' % when.isoformat()) self.eq(dt.unmarshall(types)['when'], when)
def test_attributes_access(self): span = SimpleXMLElement('<span><a href="python.org.ar">pyar</a><prueba><i>1</i><float>1.5</float></prueba></span>') text = "pyar" self.eq(str(span.a), text, 'Access by __getattr__:') self.eq(str(span.a), text, 'Access by __getattr__:') self.eq(str(span('a')), text, 'Access by __call__:') self.eq(str(span.a(0)), text, 'Access by __call__ on attribute:') self.eq(span.a['href'], "python.org.ar", 'Access by __getitem__:') self.eq(int(span.prueba.i), 1, 'Casting to int:') self.eq(float(span.prueba.float), 1.5, 'Casting to float:')
def test_basic(self): span = SimpleXMLElement('<span><a href="python.org.ar">pyar</a><prueba><i>1</i><float>1.5</float></prueba></span>') span1 = SimpleXMLElement('<span><a href="google.com">google</a><a>yahoo</a><a>hotmail</a></span>') self.eq([str(a) for a in span1.a()], ['google', 'yahoo', 'hotmail']) span1.add_child('a', 'altavista') span1.b = "ex msn" d = {'href': 'http://www.bing.com/', 'alt': 'Bing'} span1.b[:] = d self.eq(sorted([(k, v) for k, v in span1.b[:]]), sorted(d.items())) xml = '<?xml version="1.0" encoding="UTF-8"?><span><a href="google.com">google</a><a>yahoo</a><a>hotmail</a><a>altavista</a><b alt="Bing" href="http://www.bing.com/">ex msn</b></span>' self.eq(span1.as_xml(), xml) self.assertTrue('b' in span1) span.import_node(span1) xml = '<?xml version="1.0" encoding="UTF-8"?><span><a href="python.org.ar">pyar</a><prueba><i>1</i><float>1.5</float></prueba><span><a href="google.com">google</a><a>yahoo</a><a>hotmail</a><a>altavista</a><b alt="Bing" href="http://www.bing.com/">ex msn</b></span></span>' self.eq(span.as_xml(), xml) types = {'when': datetime.datetime} when = datetime.datetime.now() dt = SimpleXMLElement('<when>%s</when>' % when.isoformat()) self.eq(dt.unmarshall(types)['when'], when)