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