diff --git a/sleekxmpp/clientxmpp.py b/sleekxmpp/clientxmpp.py index 2501f5d..b7963a4 100644 --- a/sleekxmpp/clientxmpp.py +++ b/sleekxmpp/clientxmpp.py @@ -59,7 +59,7 @@ class ClientXMPP(BaseXMPP): """ def __init__(self, jid, password, ssl=False, plugin_config={}, - plugin_whitelist=[], escape_quotes=True): + plugin_whitelist=[], escape_quotes=True, sasl_mech=None): """ Create a new SleekXMPP client. @@ -114,9 +114,10 @@ class ClientXMPP(BaseXMPP): # Setup default stream features self.register_plugin('feature_starttls') - self.register_plugin('feature_mechanisms') self.register_plugin('feature_bind') self.register_plugin('feature_session') + self.register_plugin('feature_mechanisms', + pconfig={'use_mech': sasl_mech} if sasl_mech else None) def connect(self, address=tuple(), reattempt=True, use_tls=True): """ diff --git a/sleekxmpp/test/sleektest.py b/sleekxmpp/test/sleektest.py index a94bb4e..dd3df29 100644 --- a/sleekxmpp/test/sleektest.py +++ b/sleekxmpp/test/sleektest.py @@ -293,7 +293,8 @@ class SleekTest(unittest.TestCase): def stream_start(self, mode='client', skip=True, header=None, socket='mock', jid='tester@localhost', password='test', server='localhost', - port=5222, plugins=None, plugin_config={}): + port=5222, sasl_mech=None, + plugins=None, plugin_config={}): """ Initialize an XMPP client or component using a dummy XML stream. @@ -317,7 +318,9 @@ class SleekTest(unittest.TestCase): are loaded. """ if mode == 'client': - self.xmpp = ClientXMPP(jid, password, plugin_config=plugin_config) + self.xmpp = ClientXMPP(jid, password, + sasl_mech=sasl_mech, + plugin_config=plugin_config) elif mode == 'component': self.xmpp = ComponentXMPP(jid, password, server, port,