diff options
author | Lance Stout <lstout@kestrel.cs.clemson.edu> | 2010-08-25 10:52:07 -0400 |
---|---|---|
committer | Lance Stout <lstout@kestrel.cs.clemson.edu> | 2010-08-25 10:52:07 -0400 |
commit | 5d458bf6c2fae32d659b29ac2697a20b781bfbd0 (patch) | |
tree | ed422e8581565e2ab3608c118877409b9e1b3d41 /tests/test_elementbase.py | |
parent | 2fa58a74ab2d9f5f84edc036ea89f0b203e3f7e9 (diff) | |
download | slixmpp-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.py | 76 |
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) |