diff --git a/tests/test_stanza_xep_0060.py b/tests/test_stanza_xep_0060.py
index 34556608..16a7cb37 100644
--- a/tests/test_stanza_xep_0060.py
+++ b/tests/test_stanza_xep_0060.py
@@ -517,4 +517,59 @@ class TestPubsubStanzas(SleekTest):
""")
+ def testPubsubError(self):
+ """Test getting a pubsub specific condition from an error stanza"""
+ iq = self.Iq()
+ iq['error']['type'] = 'cancel'
+ iq['error']['code'] = '501'
+ iq['error']['condition'] = 'feature-not-implemented'
+ iq['error']['pubsub']['condition'] = 'subid-required'
+ self.check(iq, """
+
+
+
+
+
+
+ """, use_values=False)
+
+ del iq['error']['pubsub']['condition']
+ self.check(iq, """
+
+
+
+
+
+ """, use_values=False)
+
+ def testPubsubUnsupportedError(self):
+ """Test getting the feature from an unsupported error"""
+ iq = self.Iq()
+ iq['error']['type'] = 'cancel'
+ iq['error']['code'] = '501'
+ iq['error']['condition'] = 'feature-not-implemented'
+ iq['error']['pubsub']['condition'] = 'unsupported'
+ iq['error']['pubsub']['unsupported'] = 'instant-node'
+ self.check(iq, """
+
+
+
+
+
+
+ """, use_values=False)
+
+ self.assertEqual(iq['error']['pubsub']['condition'], 'unsupported')
+ self.assertEqual(iq['error']['pubsub']['unsupported'], 'instant-node')
+
+ del iq['error']['pubsub']['unsupported']
+ self.check(iq, """
+
+
+
+
+
+ """, use_values=False)
+
+
suite = unittest.TestLoader().loadTestsFromTestCase(TestPubsubStanzas)