""" This only covers the component registration side of the XEP-0077 plugin """ import unittest from slixmpp import ComponentXMPP, Iq from slixmpp.xmlstream import register_stanza_plugin from slixmpp.test import SlixTest from slixmpp.plugins.xep_0077 import Register class TestRegistration(SlixTest): def setUp(self): self.stream_start( mode="component", plugins=["xep_0077"], jid="shakespeare.lit", server="lit" ) def testRegistrationForm(self): self.stream_start( mode="component", plugins=["xep_0077"], jid="shakespeare.lit", server="lit" ) self.recv( """ """, ) self.send( f""" {self.xmpp["xep_0077"].form_instructions} """, use_values=False # Fails inconsistently without this ) def testRegistrationSuccessAndModif(self): self.recv( """ bill Calliope """ ) self.send("") user_store = self.xmpp["xep_0077"]._user_store self.assertEqual(user_store["bill@server"]["username"], "bill") self.assertEqual(user_store["bill@server"]["password"], "Calliope") self.recv( """ """, ) self.send( f""" {self.xmpp["xep_0077"].form_instructions} bill Calliope """, use_values=False # Fails inconsistently without this ) def testRegistrationAndRemove(self): self.recv( """ bill Calliope """ ) self.send("") pseudo_iq = self.xmpp.Iq() pseudo_iq["from"] = "bill@shakespeare.lit/globe" fut = self.xmpp.wrap(self.xmpp["xep_0077"].api["user_get"](None, None, None, pseudo_iq)) self.run_coro(fut) user = fut.result() self.assertEqual(user["username"], "bill") self.assertEqual(user["password"], "Calliope") self.recv( """ """ ) self.send("") user_store = self.xmpp["xep_0077"]._user_store self.assertIs(user_store.get("bill@shakespeare.lit"), None) suite = unittest.TestLoader().loadTestsFromTestCase(TestRegistration)