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)
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")
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)
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)
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)
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)
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)
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)
def test_parse_empty(self): element = ElementTree.XML('<item xmlns="jabber:iq:roster"/>') with self.assertRaises(BadRequestProtocolError): RosterItem.from_xml(element)