import cStringIO
from Ft.Xml.Domlette import implementation, Print, PrettyPrint
EXPECTED1_PRINTED = """\
"""
EXPECTED1_PRETTY = """\
"""
EXPECTED2_PRINTED = """\
"""
EXPECTED2_PRETTY = """\
"""
EXPECTED3_PRINTED = """\
"""
EXPECTED3_PRETTY = """\
"""
EXPECTED4_PRINTED = """\
"""
EXPECTED4_PRETTY = """\
"""
def Test(tester):
tester.startGroup('Uche finds nested default namespace munging')
doc = implementation.createDocument(None, None, None)
elem1 = doc.createElementNS("http://example.com/1", "x:foo")
doc.appendChild(elem1)
elem2 = doc.createElementNS(None, "bar")
elem1.appendChild(elem2)
tester.startTest('Outer with prefix. Print')
stream = cStringIO.StringIO()
Print(doc, stream=stream)
result = stream.getvalue()
tester.compare(EXPECTED1_PRINTED, result)
tester.testDone()
tester.startTest('Outer with prefix. PrettyPrint')
stream = cStringIO.StringIO()
PrettyPrint(doc, stream=stream)
result = stream.getvalue()
tester.compare(EXPECTED1_PRETTY, result)
tester.testDone()
doc = implementation.createDocument(None, None, None)
elem1 = doc.createElementNS("http://example.com/1", "foo")
doc.appendChild(elem1)
elem2 = doc.createElementNS(None, "bar")
elem1.appendChild(elem2)
tester.startTest('Outer without prefix. Print')
stream = cStringIO.StringIO()
Print(doc, stream=stream)
result = stream.getvalue()
tester.compare(EXPECTED2_PRINTED, result)
tester.testDone()
tester.startTest('Outer without prefix. PrettyPrint')
stream = cStringIO.StringIO()
PrettyPrint(doc, stream=stream)
result = stream.getvalue()
tester.compare(EXPECTED2_PRETTY, result)
tester.testDone()
doc = implementation.createDocument(None, None, None)
elem1 = doc.createElementNS(None, "foo")
doc.appendChild(elem1)
elem2 = doc.createElementNS("http://example.com/1", "bar")
elem1.appendChild(elem2)
tester.startTest('outer no prefix or ns, inner ns no prefix. Print')
stream = cStringIO.StringIO()
Print(doc, stream=stream)
result = stream.getvalue()
tester.compare(EXPECTED3_PRINTED, result)
tester.testDone()
tester.startTest('outer no prefix or ns, inner ns no prefix. PrettyPrint')
stream = cStringIO.StringIO()
PrettyPrint(doc, stream=stream)
result = stream.getvalue()
tester.compare(EXPECTED3_PRETTY, result)
tester.testDone()
doc = implementation.createDocument(None, None, None)
elem1 = doc.createElementNS(None, "foo")
doc.appendChild(elem1)
elem2 = doc.createElementNS("http://example.com/1", "bar")
elem1.appendChild(elem2)
elem3 = doc.createElementNS(None, "baz")
elem2.appendChild(elem3)
tester.startTest('outer no prefix or ns, then ns no prefix then no prefix no ns. Print')
stream = cStringIO.StringIO()
Print(doc, stream=stream)
result = stream.getvalue()
tester.compare(EXPECTED4_PRINTED, result)
tester.testDone()
tester.startTest('outer no prefix or ns, then ns no prefix then no prefix no ns. PrettyPrint')
stream = cStringIO.StringIO()
PrettyPrint(doc, stream=stream)
result = stream.getvalue()
tester.compare(EXPECTED4_PRETTY, result)
tester.testDone()
tester.groupDone()
return