summaryrefslogtreecommitdiff
path: root/tests/test_elementbase.py
diff options
context:
space:
mode:
authorLance Stout <lstout@kestrel.cs.clemson.edu>2010-08-25 10:52:07 -0400
committerLance Stout <lstout@kestrel.cs.clemson.edu>2010-08-25 10:52:07 -0400
commit5d458bf6c2fae32d659b29ac2697a20b781bfbd0 (patch)
treeed422e8581565e2ab3608c118877409b9e1b3d41 /tests/test_elementbase.py
parent2fa58a74ab2d9f5f84edc036ea89f0b203e3f7e9 (diff)
downloadslixmpp-5d458bf6c2fae32d659b29ac2697a20b781bfbd0.tar.gz
slixmpp-5d458bf6c2fae32d659b29ac2697a20b781bfbd0.tar.bz2
slixmpp-5d458bf6c2fae32d659b29ac2697a20b781bfbd0.tar.xz
slixmpp-5d458bf6c2fae32d659b29ac2697a20b781bfbd0.zip
Updated ElementBase._delSub and added unit tests.
_delSub can now accept a path and will optionally remove any empty parent elements after deleting the target elements.
Diffstat (limited to 'tests/test_elementbase.py')
-rw-r--r--tests/test_elementbase.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/tests/test_elementbase.py b/tests/test_elementbase.py
index 2b61489a..9628ea6c 100644
--- a/tests/test_elementbase.py
+++ b/tests/test_elementbase.py
@@ -352,5 +352,81 @@ class TestElementBase(SleekTest):
</foo>
""")
+ def testDelSub(self):
+ """Test removing sub elements."""
+
+ class TestStanza(ElementBase):
+ name = "foo"
+ namespace = "foo"
+ interfaces = set(('bar', 'baz'))
+
+ def setBar(self, value):
+ self._setSubText("path/to/only/bar", value);
+
+ def getBar(self):
+ return self._getSubText("path/to/only/bar")
+
+ def delBar(self):
+ self._delSub("path/to/only/bar")
+
+ def setBaz(self, value):
+ self._setSubText("path/to/just/baz", value);
+
+ def getBaz(self):
+ return self._getSubText("path/to/just/baz")
+
+ def delBaz(self):
+ self._delSub("path/to/just/baz")
+
+ stanza = TestStanza()
+ stanza['bar'] = 'a'
+ stanza['baz'] = 'b'
+
+ self.checkStanza(TestStanza, stanza, """
+ <foo xmlns="foo">
+ <path>
+ <to>
+ <only>
+ <bar>a</bar>
+ </only>
+ <just>
+ <baz>b</baz>
+ </just>
+ </to>
+ </path>
+ </foo>
+ """)
+
+ del stanza['bar']
+ del stanza['baz']
+
+ self.checkStanza(TestStanza, stanza, """
+ <foo xmlns="foo">
+ <path>
+ <to>
+ <only />
+ <just />
+ </to>
+ </path>
+ </foo>
+ """, use_values=False)
+
+ stanza['bar'] = 'a'
+ stanza['baz'] = 'b'
+
+ stanza._delSub('path/to/only/bar', all=True)
+
+ self.checkStanza(TestStanza, stanza, """
+ <foo xmlns="foo">
+ <path>
+ <to>
+ <just>
+ <baz>b</baz>
+ </just>
+ </to>
+ </path>
+ </foo>
+ """)
+
suite = unittest.TestLoader().loadTestsFromTestCase(TestElementBase)