mirror of
https://github.com/pisilinux-3/piksemel3.git
synced 2026-07-31 03:09:02 +00:00
python3 fork piksemel
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import piksemel as iks
|
||||
|
||||
doc_xml = '<lala b="" c="42"/>'
|
||||
|
||||
doc = iks.newDocument("lala")
|
||||
doc.setAttribute("a", "lala")
|
||||
doc.setAttribute("b", "nanuk")
|
||||
doc.setAttribute("b", "")
|
||||
doc.setAttribute("a", None)
|
||||
doc.setAttribute("c", "42")
|
||||
|
||||
assert(doc.toString() == doc_xml)
|
||||
@@ -0,0 +1,94 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import piksemel as iks
|
||||
|
||||
doc_xml = """
|
||||
<test>
|
||||
<a><b><c/></b></a>
|
||||
<item foo="lala">
|
||||
<tuktuk>blah & bleh</tuktuk>
|
||||
<nanuk/>
|
||||
</item>
|
||||
<a/>
|
||||
</test>
|
||||
""".strip()
|
||||
|
||||
doc = iks.newDocument("test")
|
||||
doc.insertData("\n ")
|
||||
a = doc.insertTag("a")
|
||||
a.insertTag("b").insertTag("c")
|
||||
doc.insertData("\n ")
|
||||
item = doc.insertTag("item")
|
||||
item.setAttribute("foo", "lala")
|
||||
item.insertData("\n ")
|
||||
item.insertTag("tuktuk").insertData("blah & bleh")
|
||||
item.insertData("\n ")
|
||||
item.insertTag("nanuk")
|
||||
item.insertData("\n ")
|
||||
doc.insertData("\n ")
|
||||
a = doc.insertTag("a")
|
||||
doc.insertData("\n")
|
||||
assert(doc.toString() == doc_xml)
|
||||
|
||||
# append test
|
||||
|
||||
doc = iks.newDocument("lala")
|
||||
a = doc.insertTag("nanik")
|
||||
b = a.appendData("lala")
|
||||
a = b.appendTag("lolo")
|
||||
a = a.appendTag("iki")
|
||||
b.appendData("hede")
|
||||
doc.firstChild().appendData("fii")
|
||||
assert(doc.toString() == "<lala><nanik/>fiilalahede<lolo/><iki/></lala>")
|
||||
|
||||
# prepend test
|
||||
|
||||
doc = iks.newDocument("lala")
|
||||
a = doc.insertTag("foo")
|
||||
a = a.prependTag("a")
|
||||
a = a.prependTag("b")
|
||||
a.prependData("hihi").prependData("oh").appendData("i")
|
||||
a.appendTag("c")
|
||||
assert(doc.toString() == "<lala>ohihihi<b/><c/><a/><foo/></lala>")
|
||||
|
||||
# insertNode test
|
||||
|
||||
doc = iks.newDocument("a")
|
||||
b = iks.newDocument("b")
|
||||
b.setAttribute("lal", "foo")
|
||||
b = doc.insertNode(b)
|
||||
b.setAttribute("lal", "foofff")
|
||||
assert(doc.toString() == '<a><b lal="foofff"/></a>')
|
||||
|
||||
# now with append, prepend and insertNode
|
||||
|
||||
doc = iks.newDocument("test")
|
||||
|
||||
a = iks.newDocument("a")
|
||||
a.insertTag("b").insertTag("c")
|
||||
|
||||
item = iks.newDocument("item")
|
||||
node = item.insertData("\n ")
|
||||
node.appendTag("tuktuk").insertData("blah & bleh")
|
||||
node = item.insertData("\n ")
|
||||
node.appendTag("nanuk").appendData("\n ")
|
||||
|
||||
doc.insertNode(a).appendData("\n ")
|
||||
doc.getTag("a").prependData("\n ")
|
||||
del a
|
||||
node = doc.insertNode(item)
|
||||
node.setAttribute("foo", "lala")
|
||||
del item
|
||||
node = doc.insertData("\n ")
|
||||
node.appendTag("a").appendData("\n")
|
||||
assert(doc.toString() == doc_xml)
|
||||
|
||||
# setData test
|
||||
doc = iks.newDocument("a")
|
||||
x = doc.insertTag("b")
|
||||
x.insertTag("lala")
|
||||
y = x.insertTag("bibi")
|
||||
y.prependData("hodo")
|
||||
assert(x.toString() == "<b><lala/>hodo<bibi/></b>")
|
||||
x.setData("merhaba")
|
||||
assert(x.toString() == "<b>merhaba</b>")
|
||||
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import piksemel as iks
|
||||
|
||||
doc_xml = """
|
||||
<test>
|
||||
<a/>
|
||||
<item id="1"/>
|
||||
<a/>
|
||||
<foo/>
|
||||
<item id="2">
|
||||
<tuktuk>blah & bleh</tuktuk>
|
||||
<a foo="bleh"/>
|
||||
<nanuk/>
|
||||
</item>
|
||||
<a/>
|
||||
<bar/>
|
||||
<item/>
|
||||
<item id="4"/>
|
||||
<a/>
|
||||
</test>
|
||||
"""
|
||||
|
||||
doc = iks.parseString(doc_xml)
|
||||
|
||||
count = 0
|
||||
for node in doc:
|
||||
assert(node.type() == iks.TAG or node.type() == iks.DATA)
|
||||
count += 1
|
||||
assert(count == 21)
|
||||
|
||||
count = 0
|
||||
for node in doc.tags():
|
||||
assert(node.type() == iks.TAG)
|
||||
count += 1
|
||||
assert(count == 10)
|
||||
|
||||
count = 0
|
||||
for node in doc.tags("a"):
|
||||
assert(node.type() == iks.TAG)
|
||||
assert(node.name() == "a")
|
||||
assert(node.getAttribute("foo") == None)
|
||||
count += 1
|
||||
assert(count == 4)
|
||||
|
||||
count = 0
|
||||
for node in doc.tags("item"):
|
||||
assert(node.type() == iks.TAG)
|
||||
assert(node.name() == "item")
|
||||
count += 1
|
||||
assert(count == 4)
|
||||
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import piksemel
|
||||
|
||||
doc = piksemel.newDocument("lala")
|
||||
|
||||
try:
|
||||
doc.appendTag("lala")
|
||||
except piksemel.NotTag:
|
||||
pass
|
||||
|
||||
try:
|
||||
doc.appendData("lala")
|
||||
except piksemel.NotTag:
|
||||
pass
|
||||
|
||||
try:
|
||||
doc.prependTag("lala")
|
||||
except piksemel.NotTag:
|
||||
pass
|
||||
|
||||
try:
|
||||
doc.prependData("lala")
|
||||
except piksemel.NotTag:
|
||||
pass
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import piksemel as iks
|
||||
|
||||
doc_xml = """
|
||||
<test>
|
||||
<item id="1"/>
|
||||
<foo/>
|
||||
<item id="2">
|
||||
<tuktuk>blah & bleh</tuktuk>
|
||||
<nanuk/>
|
||||
</item>
|
||||
<bar/>
|
||||
<item/>
|
||||
<item id="4"/>
|
||||
</test>
|
||||
"""
|
||||
|
||||
doc = iks.parseString(doc_xml)
|
||||
|
||||
# sibling nodes
|
||||
|
||||
node = doc.firstChild()
|
||||
last = None
|
||||
count = 0
|
||||
while node:
|
||||
last = node
|
||||
count += 1
|
||||
node = node.next()
|
||||
assert(count == 13)
|
||||
|
||||
node = last
|
||||
while node:
|
||||
count -= 1
|
||||
node = node.previous()
|
||||
assert(count == 0)
|
||||
|
||||
# sibling tags
|
||||
|
||||
item = doc.getTag("item")
|
||||
last = None
|
||||
while item:
|
||||
last = item
|
||||
assert(item.type() == iks.TAG)
|
||||
assert(item.name() == "item")
|
||||
count += 1
|
||||
item = item.nextTag("item")
|
||||
assert(count == 4)
|
||||
|
||||
item = last
|
||||
while item:
|
||||
assert(item.type() == iks.TAG)
|
||||
assert(item.name() == "item")
|
||||
count -= 1
|
||||
item = item.previousTag("item")
|
||||
assert(count == 0)
|
||||
|
||||
node = doc.getTag("item")
|
||||
last = None
|
||||
while node:
|
||||
last = node
|
||||
assert(node.type() == iks.TAG)
|
||||
count += 1
|
||||
node = node.nextTag()
|
||||
assert(count == 6)
|
||||
|
||||
node = last
|
||||
while node:
|
||||
assert(node.type() == iks.TAG)
|
||||
count -= 1
|
||||
node = node.previousTag()
|
||||
assert(count == 0)
|
||||
|
||||
# parent/child
|
||||
|
||||
node = doc.getTag("item").nextTag().nextTag().getTag("nanuk")
|
||||
assert(node.type() == iks.TAG)
|
||||
assert(node.name() == "nanuk")
|
||||
|
||||
item = node.parent()
|
||||
assert(item.type() == iks.TAG)
|
||||
assert(item.name() == "item")
|
||||
|
||||
top = node.root()
|
||||
assert(top.type() == iks.TAG)
|
||||
assert(top.name() == "test")
|
||||
Reference in New Issue
Block a user