Add an example for dumping the roster to the command line.
[slixmpp.git] / tests / test_stanza_error.py
bloba41bf4bf7ae563c74b446e56aaf973eb5f4ebef5
1 from sleekxmpp.test import *
4 class TestErrorStanzas(SleekTest):
6 def setUp(self):
7 # Ensure that the XEP-0086 plugin has been loaded.
8 self.stream_start()
9 self.stream_close()
11 def testSetup(self):
12 """Test setting initial values in error stanza."""
13 msg = self.Message()
14 msg.enable('error')
15 self.check(msg, """
16 <message type="error">
17 <error type="cancel" code="501">
18 <feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
19 </error>
20 </message>
21 """)
23 def testCondition(self):
24 """Test modifying the error condition."""
25 msg = self.Message()
26 msg['error']['condition'] = 'item-not-found'
28 self.check(msg, """
29 <message type="error">
30 <error type="cancel" code="404">
31 <item-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
32 </error>
33 </message>
34 """)
36 self.failUnless(msg['error']['condition'] == 'item-not-found', "Error condition doesn't match.")
38 msg['error']['condition'] = 'resource-constraint'
40 self.check(msg, """
41 <message type="error">
42 <error type="wait" code="500">
43 <resource-constraint xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
44 </error>
45 </message>
46 """)
48 def testDelCondition(self):
49 """Test that deleting error conditions doesn't remove extra elements."""
50 msg = self.Message()
51 msg['error']['text'] = 'Error!'
52 msg['error']['condition'] = 'internal-server-error'
54 del msg['error']['condition']
56 self.check(msg, """
57 <message type="error">
58 <error type="wait" code="500">
59 <text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Error!</text>
60 </error>
61 </message>
62 """, use_values=False)
64 def testDelText(self):
65 """Test deleting the text of an error."""
66 msg = self.Message()
67 msg['error']['test'] = 'Error!'
68 msg['error']['condition'] = 'internal-server-error'
70 del msg['error']['text']
72 self.check(msg, """
73 <message type="error">
74 <error type="wait" code="500">
75 <internal-server-error xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
76 </error>
77 </message>
78 """)
81 suite = unittest.TestLoader().loadTestsFromTestCase(TestErrorStanzas)