Allow XEP 0092 to send os information
[slixmpp.git] / tests / test_stanza_error.py
blobe1c7d5a4c8a3548277fbf686d49af1ceb0970dfe
1 from sleekxmpp.test import *
4 class TestErrorStanzas(SleekTest):
6 def testSetup(self):
7 """Test setting initial values in error stanza."""
8 msg = self.Message()
9 msg.enable('error')
10 self.check(msg, """
11 <message type="error">
12 <error type="cancel">
13 <feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
14 </error>
15 </message>
16 """)
18 def testCondition(self):
19 """Test modifying the error condition."""
20 msg = self.Message()
21 msg['error']['condition'] = 'item-not-found'
23 self.check(msg, """
24 <message type="error">
25 <error type="cancel">
26 <item-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
27 </error>
28 </message>
29 """)
31 self.failUnless(msg['error']['condition'] == 'item-not-found', "Error condition doesn't match.")
33 msg['error']['condition'] = 'resource-constraint'
35 self.check(msg, """
36 <message type="error">
37 <error type="cancel">
38 <resource-constraint xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
39 </error>
40 </message>
41 """)
43 def testDelCondition(self):
44 """Test that deleting error conditions doesn't remove extra elements."""
45 msg = self.Message()
46 msg['error']['text'] = 'Error!'
47 msg['error']['condition'] = 'internal-server-error'
49 del msg['error']['condition']
51 self.check(msg, """
52 <message type="error">
53 <error type="cancel">
54 <text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Error!</text>
55 </error>
56 </message>
57 """, use_values=False)
59 def testDelText(self):
60 """Test deleting the text of an error."""
61 msg = self.Message()
62 msg['error']['test'] = 'Error!'
63 msg['error']['condition'] = 'internal-server-error'
65 del msg['error']['text']
67 self.check(msg, """
68 <message type="error">
69 <error type="cancel">
70 <internal-server-error xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
71 </error>
72 </message>
73 """)
76 suite = unittest.TestLoader().loadTestsFromTestCase(TestErrorStanzas)