from sleekxmpp.test import *
from sleekxmpp.xmlstream.stanzabase import ET
class TestIqStanzas(SleekTest):
    def tearDown(self):
        """Shutdown the XML stream after testing."""
        self.stream_close()
    def testSetup(self):
        """Test initializing default Iq values."""
        iq = self.Iq()
        self.check(iq, """
          
        """)
    def testPayload(self):
        """Test setting Iq stanza payload."""
        iq = self.Iq()
        iq.setPayload(ET.Element('{test}tester'))
        self.check(iq, """
          
            
          
        """, use_values=False)
    def testUnhandled(self):
        """Test behavior for Iq.unhandled."""
        self.stream_start()
        self.recv("""
          
            
           
        """)
        iq = self.Iq()
        iq['id'] = 'test'
        iq['error']['condition'] = 'feature-not-implemented'
        iq['error']['text'] = 'No handlers registered for this request.'
        self.send(iq, """
          
            
              
              
                No handlers registered for this request.
              
            
          
        """)
    def testQuery(self):
        """Test modifying query element of Iq stanzas."""
        iq = self.Iq()
        iq['query'] = 'query_ns'
        self.check(iq, """
          
            
          
        """)
        iq['query'] = 'query_ns2'
        self.check(iq, """
          
            
          
        """)
        self.failUnless(iq['query'] == 'query_ns2', "Query namespace doesn't match")
        del iq['query']
        self.check(iq, """
          
        """)
    def testReply(self):
        """Test setting proper result type in Iq replies."""
        iq = self.Iq()
        iq['to'] = 'user@localhost'
        iq['type'] = 'get'
        iq.reply()
        self.check(iq, """
          
        """)
suite = unittest.TestLoader().loadTestsFromTestCase(TestIqStanzas)