xep0402: add password and extension
This commit is contained in:
parent
876c82037f
commit
56c906f207
@ -9,18 +9,25 @@ class Conference(ElementBase):
|
|||||||
namespace = NS
|
namespace = NS
|
||||||
name = "conference"
|
name = "conference"
|
||||||
plugin_attrib = "conference"
|
plugin_attrib = "conference"
|
||||||
interfaces = {"name", "autojoin", "nick"}
|
interfaces = {"name", "autojoin", "nick", "password"}
|
||||||
sub_interfaces = {"nick"}
|
sub_interfaces = {"nick", "password"}
|
||||||
|
|
||||||
def set_autojoin(self, v: bool):
|
def set_autojoin(self, v: bool):
|
||||||
self._set_attr('autojoin', "true" if v else "false")
|
self._set_attr("autojoin", "true" if v else "false")
|
||||||
|
|
||||||
def get_autojoin(self):
|
def get_autojoin(self):
|
||||||
v = self._get_attr('autojoin', '')
|
v = self._get_attr("autojoin", "")
|
||||||
if not v:
|
if not v:
|
||||||
return False
|
return False
|
||||||
return v == "1" or v.lower() == "true"
|
return v == "1" or v.lower() == "true"
|
||||||
|
|
||||||
|
|
||||||
|
class Extensions(ElementBase):
|
||||||
|
namespace = NS
|
||||||
|
name = "extensions"
|
||||||
|
plugin_attrib = "extensions"
|
||||||
|
|
||||||
|
|
||||||
def register_plugin():
|
def register_plugin():
|
||||||
|
register_stanza_plugin(Conference, Extensions)
|
||||||
register_stanza_plugin(Item, Conference)
|
register_stanza_plugin(Item, Conference)
|
||||||
|
50
tests/test_stanza_xep_0402.py
Normal file
50
tests/test_stanza_xep_0402.py
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
import unittest
|
||||||
|
|
||||||
|
from slixmpp.test import SlixTest
|
||||||
|
from slixmpp.xmlstream import ElementBase
|
||||||
|
from slixmpp.plugins.xep_0402 import stanza
|
||||||
|
|
||||||
|
|
||||||
|
class Ext1(ElementBase):
|
||||||
|
name = "ext1"
|
||||||
|
namespace = "http://ext1"
|
||||||
|
|
||||||
|
|
||||||
|
class Ext2(ElementBase):
|
||||||
|
name = "ext2"
|
||||||
|
namespace = "http://ext2"
|
||||||
|
|
||||||
|
|
||||||
|
class TestPepBookmarks(SlixTest):
|
||||||
|
def setUp(self):
|
||||||
|
stanza.register_plugin()
|
||||||
|
|
||||||
|
def test_bookmarks_extensions(self):
|
||||||
|
extension1 = Ext1()
|
||||||
|
extension2 = Ext2()
|
||||||
|
|
||||||
|
bookmark = stanza.Conference()
|
||||||
|
bookmark["password"] = "pass"
|
||||||
|
bookmark["nick"] = "nick"
|
||||||
|
bookmark["autojoin"] = False
|
||||||
|
bookmark["extensions"].append(extension1)
|
||||||
|
bookmark["extensions"].append(extension2)
|
||||||
|
self.check(
|
||||||
|
bookmark,
|
||||||
|
"""
|
||||||
|
<conference xmlns='urn:xmpp:bookmarks:1'
|
||||||
|
autojoin='false'>
|
||||||
|
<nick>nick</nick>
|
||||||
|
<password>pass</password>
|
||||||
|
<extensions>
|
||||||
|
<ext1 xmlns="http://ext1" />
|
||||||
|
<ext2 xmlns="http://ext2" />
|
||||||
|
</extensions>
|
||||||
|
</conference>
|
||||||
|
""",
|
||||||
|
use_values=False
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
suite = unittest.TestLoader().loadTestsFromTestCase(TestPepBookmarks)
|
Loading…
Reference in New Issue
Block a user