diff --git a/src/jcl/jabber/tests/command.py b/src/jcl/jabber/tests/command.py index ff98658..ebd7fd7 100644 --- a/src/jcl/jabber/tests/command.py +++ b/src/jcl/jabber/tests/command.py @@ -383,19 +383,13 @@ class JCLCommandManager_TestCase(JCLTestCase): self.command_manager.add_form_select_users_jids(command_node, "title", "description", Lang.en.field_users_jids) - x_data = info_query.xpath_eval("c:command/data:x", - {"c": "http://jabber.org/protocol/commands", - "data": "jabber:x:data"}) - self.assertEquals(len(x_data), 1) - self.assertEquals(x_data[0].prop("type"), "form") - user_jid_field = info_query.xpath_eval("c:command/data:x/data:field[1]", - {"c": "http://jabber.org/protocol/commands", - "data": "jabber:x:data"}) - self.assertNotEquals(user_jid_field, None) - self.assertEquals(len(user_jid_field), 1) - self.assertEquals(user_jid_field[0].prop("var"), "user_jids") - self.assertEquals(user_jid_field[0].prop("type"), "jid-multi") - self.assertEquals(user_jid_field[0].prop("label"), Lang.en.field_users_jids) + self.assertTrue(jcl.tests.is_xml_equal(\ + u"" + + "" + + "" + + "", + info_query.xmlnode.children)) def test_add_form_select_user_jid(self): info_query = Iq(stanza_type="set", diff --git a/src/jcl/tests/__init__.py b/src/jcl/tests/__init__.py index 7f9cfe0..4593063 100644 --- a/src/jcl/tests/__init__.py +++ b/src/jcl/tests/__init__.py @@ -36,10 +36,12 @@ def is_xml_equal(xml_ref, xml_test, strict=False, test_sibling=True): return True if (xml_ref is None) and (xml_test is None): return True - if isinstance(xml_ref, types.StringType): - xml_ref = libxml2.parseDoc(xml_ref) - if isinstance(xml_test, types.StringType): - xml_test = libxml2.parseDoc(xml_test) + if isinstance(xml_ref, types.StringType) \ + or isinstance(xml_ref, types.UnicodeType): + xml_ref = libxml2.parseDoc(xml_ref).children + if isinstance(xml_test, types.StringType) \ + or isinstance(xml_test, types.UnicodeType): + xml_test = libxml2.parseDoc(xml_test).children def check_equality(test_func, ref, test, strict): """ @@ -65,7 +67,7 @@ def is_xml_equal(xml_ref, xml_test, strict=False, test_sibling=True): xml_ref, xml_test, strict): return False - if not check_equality(lambda ref, test: ref.ns() == test.ns(), + if not check_equality(lambda ref, test: str(ref.ns()) == str(test.ns()), xml_ref, xml_test, strict): return False @@ -109,6 +111,31 @@ def is_xml_equal(xml_ref, xml_test, strict=False, test_sibling=True): return True class JCLTest_TestCase(unittest.TestCase): + def test_is_xml_equal_str_node_vs_xml_node(self): + """ + Test if an xml node is equal to its string representation. + """ + # Get xml_node children because parseDoc return an xmlDocument + # and we usually test against an xmlNode + xml_node = libxml2.parseDoc("").children + self.assertTrue(is_xml_equal(str(xml_node), xml_node)) + + def test_is_xml_equal_xml_node_vs_str_node(self): + """ + Test if an xml node is equal to its string representation. + """ + # Get xml_node children because parseDoc return an xmlDocument + # and we usually test against an xmlNode + xml_node = libxml2.parseDoc("").children + self.assertTrue(is_xml_equal(xml_node, str(xml_node))) + + def test_is_xml_equal_namespace(self): + """ + Test for namespace equality. + """ + self.assertTrue(is_xml_equal("", + "")) + ########################################################################### ## Test weak equality ###########################################################################