Exemplo n.º 1
0
    def test_build_empty(self):
        item = RosterItem(JID("*****@*****.**"))
        self.assertEqual(item.jid, JID("*****@*****.**"))
        self.assertIsNone(item.name)
        self.assertIsNone(item.subscription)
        self.assertIsNone(item.ask)
        self.assertFalse(item.approved)
        self.assertEqual(item.groups, set())
        xml = item.as_xml()
        self.assertEqual(xml.tag, "{jabber:iq:roster}item")
        self.assertEqual(len(xml), 0)
        self.assertEqual(xml.get("jid"), u"*****@*****.**")
        self.assertEqual(xml.get("name"), None)
        self.assertEqual(xml.get("subscription"), None)
        self.assertEqual(xml.get("ask"), None)
        self.assertEqual(xml.get("approved"), None)

        # check if serializable
        self.assertTrue(ElementTree.tostring(xml))
Exemplo n.º 2
0
 def test_set_empty_group(self):
     element = ElementTree.XML('<item xmlns="jabber:iq:roster"'
                     ' jid="[email protected]"><group/></item>')
     item = RosterItem.from_xml(element)
     self.assertEqual(item.jid, JID("[email protected]"))
     self.assertEqual(item.groups, set([u""]))
     with self.assertRaises(NotAcceptableProtocolError):
         item.verify_roster_set()
     with self.assertRaises(NotAcceptableProtocolError):
         item.verify_roster_set(True)
Exemplo n.º 3
0
 def test_set_with_remove(self):
     element = ElementTree.XML('<item xmlns="jabber:iq:roster"'
                     ' jid="[email protected]" subscription="remove"/>')
     item = RosterItem.from_xml(element)
     self.assertEqual(item.jid, JID("[email protected]"))
     self.assertEqual(item.subscription, "remove")
     item.verify_roster_set()
     item.verify_roster_set(True)
     self.assertEqual(item.jid, JID("[email protected]"))
     self.assertEqual(item.subscription, "remove")
Exemplo n.º 4
0
 def test_result_with_remove(self):
     element = ElementTree.XML('<item xmlns="jabber:iq:roster"'
                     ' jid="[email protected]" subscription="remove"/>')
     item = RosterItem.from_xml(element)
     self.assertEqual(item.jid, JID("[email protected]"))
     self.assertEqual(item.subscription, "remove")
     with self.assertRaises(ValueError):
         item.verify_roster_result()
     item.verify_roster_result(True)
     self.assertEqual(item.jid, JID("[email protected]"))
     self.assertIsNone(item.subscription)
Exemplo n.º 5
0
 def test_set_duplicate_group(self):
     element = ElementTree.XML('<item xmlns="jabber:iq:roster"'
                     ' jid="[email protected]"><group>GROUP1</group>'
                                 '<group>GROUP1</group></item>')
     item = RosterItem.from_xml(element)
     self.assertEqual(item.jid, JID("[email protected]"))
     self.assertEqual(item.groups, set([u"GROUP1"]))
     with self.assertRaises(BadRequestProtocolError):
         item.verify_roster_set()
     with self.assertRaises(BadRequestProtocolError):
         item.verify_roster_set(True)
Exemplo n.º 6
0
 def test_set_with_subscription(self):
     element = ElementTree.XML('<item xmlns="jabber:iq:roster"'
                     ' jid="[email protected]" subscription="both"/>')
     item = RosterItem.from_xml(element)
     self.assertEqual(item.jid, JID("[email protected]"))
     self.assertEqual(item.subscription, "both")
     with self.assertRaises(BadRequestProtocolError):
         item.verify_roster_set()
     item.verify_roster_set(True)
     self.assertEqual(item.jid, JID("[email protected]"))
     self.assertIsNone(item.subscription)
Exemplo n.º 7
0
    def test_build_full(self):
        item = RosterItem(JID("*****@*****.**"), "NAME", ["G1", "G2"],
                                "from", "subscribe", "true")
        self.assertEqual(item.jid, JID("*****@*****.**"))
        self.assertEqual(item.name, "NAME")
        self.assertEqual(item.subscription, "from")
        self.assertEqual(item.ask, "subscribe")
        self.assertTrue(item.approved)
        self.assertEqual(item.groups, set(["G1", "G2"]))
        xml = item.as_xml()
        self.assertEqual(xml.tag, "{jabber:iq:roster}item")
        self.assertEqual(len(xml), 2)
        self.assertEqual(xml.get("jid"), u"*****@*****.**")
        self.assertEqual(xml.get("name"), "NAME")
        self.assertEqual(xml.get("subscription"), "from")
        self.assertEqual(xml.get("ask"), "subscribe")
        self.assertEqual(xml.get("approved"), "true")
        self.assertEqual(xml[0].tag, "{jabber:iq:roster}group")
        self.assertEqual(xml[1].tag, "{jabber:iq:roster}group")
        self.assertEqual(set([xml[0].text, xml[1].text]), set(["G1", "G2"]))

        # check if serializable
        self.assertTrue(ElementTree.tostring(xml))
Exemplo n.º 8
0
 def test_parse_only_jid(self):
     element = ElementTree.XML('<item xmlns="jabber:iq:roster"'
                                                         ' jid="[email protected]"/>')
     item = RosterItem.from_xml(element)
     self.assertEqual(item.jid, JID("[email protected]"))
     self.assertIsNone(item.name)
     self.assertEqual(item.groups, set())
     self.assertIsNone(item.subscription)
     self.assertIsNone(item.ask)
     self.assertFalse(item.approved)
     item.verify_roster_result()
     item.verify_roster_result(True)
     self.assertEqual(item.jid, JID("[email protected]"))
     self.assertIsNone(item.name)
     self.assertEqual(item.groups, set())
     self.assertIsNone(item.subscription)
     self.assertIsNone(item.ask)
     self.assertFalse(item.approved)
Exemplo n.º 9
0
 def test_parse_full(self):
     element = ElementTree.XML('<item xmlns="jabber:iq:roster"'
                     ' jid="[email protected]" name="NAME" subscription="to"'
                     ' ask="subscribe" approved="true">'
                     '<group>GROUP1</group><group>GROUP2</group>'
                     '</item>')
     item = RosterItem.from_xml(element)
     self.assertEqual(item.jid, JID("[email protected]"))
     self.assertEqual(item.name, u"NAME")
     self.assertEqual(item.groups, set(["GROUP1", "GROUP2"]))
     self.assertEqual(item.subscription, "to")
     self.assertEqual(item.ask, "subscribe")
     self.assertTrue(item.approved)
     item.verify_roster_result()
     item.verify_roster_result(True)
     self.assertEqual(item.jid, JID("[email protected]"))
     self.assertEqual(item.name, u"NAME")
     self.assertEqual(item.groups, set(["GROUP1", "GROUP2"]))
     self.assertEqual(item.subscription, "to")
     self.assertEqual(item.ask, "subscribe")
     self.assertTrue(item.approved)
Exemplo n.º 10
0
 def test_bad_subscription(self):
     element = ElementTree.XML('<item xmlns="jabber:iq:roster"'
                     ' jid="[email protected]" name="NAME" subscription="bad"'
                     ' ask="subscribe" approved="true">'
                     '<group>GROUP1</group><group>GROUP2</group>'
                     '</item>')
     item = RosterItem.from_xml(element)
     self.assertEqual(item.jid, JID("[email protected]"))
     self.assertEqual(item.name, u"NAME")
     self.assertEqual(item.groups, set(["GROUP1", "GROUP2"]))
     self.assertEqual(item.subscription, "bad")
     self.assertEqual(item.ask, "subscribe")
     self.assertTrue(item.approved)
     with self.assertRaises(ValueError):
         item.verify_roster_result()
     item.verify_roster_result(True)
     self.assertEqual(item.jid, JID("[email protected]"))
     self.assertEqual(item.name, u"NAME")
     self.assertEqual(item.groups, set(["GROUP1", "GROUP2"]))
     self.assertIsNone(item.subscription)
     self.assertEqual(item.ask, "subscribe")
     self.assertTrue(item.approved)
 def test_set_full(self):
     element = ElementTree.XML('<item xmlns="jabber:iq:roster"'
                     ' jid="[email protected]" name="NAME" subscription="to"'
                     ' ask="subscribe" approved="true">'
                     '<group>GROUP1</group><group>GROUP2</group>'
                     '</item>')
     item = RosterItem.from_xml(element)
     self.assertEqual(item.jid, JID("[email protected]"))
     self.assertEqual(item.name, "NAME")
     self.assertEqual(item.groups, set(["GROUP1", "GROUP2"]))
     self.assertEqual(item.subscription, "to")
     self.assertEqual(item.ask, "subscribe")
     self.assertTrue(item.approved)
     with self.assertRaises(BadRequestProtocolError):
         item.verify_roster_set()
     item.verify_roster_set(True)
     self.assertEqual(item.jid, JID("[email protected]"))
     self.assertEqual(item.name, "NAME")
     self.assertEqual(item.groups, set(["GROUP1", "GROUP2"]))
     self.assertIsNone(item.subscription)
     self.assertIsNone(item.ask, None)
     self.assertFalse(item.approved)
Exemplo n.º 12
0
 def test_parse_empty(self):
     element = ElementTree.XML('<item xmlns="jabber:iq:roster"/>')
     with self.assertRaises(BadRequestProtocolError):
         RosterItem.from_xml(element)