def test_iternodes(self): """test Tag.__iternodes__()""" node1n1, node1n2 = Text("ref"), Text("foobar") node2n1, node3n1, node3n2 = Text("bold text"), Text("img"), Text("id") node3n3, node3n4, node3n5 = Text("foo"), Text("class"), Text("bar") # <ref>foobar</ref> node1 = Tag(wrap([node1n1]), wrap([node1n2])) # '''bold text''' node2 = Tag(wraptext("b"), wrap([node2n1]), wiki_markup="'''") # <img id="foo" class="bar" /> node3 = Tag( wrap([node3n1]), attrs=[Attribute(wrap([node3n2]), wrap([node3n3])), Attribute(wrap([node3n4]), wrap([node3n5]))], self_closing=True, padding=" ", ) gen1 = node1.__iternodes__(getnodes) gen2 = node2.__iternodes__(getnodes) gen3 = node3.__iternodes__(getnodes) self.assertEqual((None, node1), next(gen1)) self.assertEqual((None, node2), next(gen2)) self.assertEqual((None, node3), next(gen3)) self.assertEqual((node1.tag, node1n1), next(gen1)) self.assertEqual((node3.tag, node3n1), next(gen3)) self.assertEqual((node3.attributes[0].name, node3n2), next(gen3)) self.assertEqual((node3.attributes[0].value, node3n3), next(gen3)) self.assertEqual((node3.attributes[1].name, node3n4), next(gen3)) self.assertEqual((node3.attributes[1].value, node3n5), next(gen3)) self.assertEqual((node1.contents, node1n2), next(gen1)) self.assertEqual((node2.contents, node2n1), next(gen2)) self.assertEqual((node1.closing_tag, node1n1), next(gen1)) self.assertRaises(StopIteration, next, gen1) self.assertRaises(StopIteration, next, gen2) self.assertRaises(StopIteration, next, gen3)