logo       
Google Custom Search
    AddThis Social Bookmark Button
-->

r31248 - in lxml/trunk/src/lxml: . tests: msg#00127

Subject: r31248 - in lxml/trunk/src/lxml: . tests
Author: scoder
Date: Fri Aug 11 09:21:32 2006
New Revision: 31248

Modified:
   lxml/trunk/src/lxml/objectify.pyx
   lxml/trunk/src/lxml/tests/test_objectify.py
Log:
removed objectify.register()/unregister(), replaced by parser based setup

Modified: lxml/trunk/src/lxml/objectify.pyx
==============================================================================
--- lxml/trunk/src/lxml/objectify.pyx   (original)
+++ lxml/trunk/src/lxml/objectify.pyx   Fri Aug 11 09:21:32 2006
@@ -1489,25 +1489,3 @@
         _value = str(_value)
     cetree.setNodeText(element._c_node, _value)
     return element
-
-
-################################################################################
-# Module setup
-
-def register(prefer_nsclasses=True):
-    """Globally register the objectify element class lookup mechanism.
-
-    By default, namespace specific element classes override this lookup.
-    Passing False for the ``prefer_nsclasses`` keyword argument will prevent
-    the namespace lookup.
-
-    Note that this is not the preferred way of using the objectify
-    module.  Consider using a parser specific setup instead.
-    """
-    lookup = ObjectifyElementClassLookup()
-    if prefer_nsclasses:
-        lookup = etree.ElementNamespaceClassLookup(lookup)
-    etree.setElementClassLookup(lookup)
-
-def unregister():
-    etree.setElementClassLookup()

Modified: lxml/trunk/src/lxml/tests/test_objectify.py
==============================================================================
--- lxml/trunk/src/lxml/tests/test_objectify.py (original)
+++ lxml/trunk/src/lxml/tests/test_objectify.py Fri Aug 11 09:21:32 2006
@@ -31,60 +31,68 @@
     """
     etree = etree
 
+    def XML(self, xml):
+        return self.etree.XML(xml, self.parser)
+
     def setUp(self):
-        objectify.register()
+        self.parser = self.etree.XMLParser(remove_blank_text=True)
+        lookup = etree.ElementNamespaceClassLookup(
+            objectify.ObjectifyElementClassLookup() )
+        self.parser.setElementClassLookup(lookup)
+
+        self.Element = self.parser.makeelement
+
         ns = self.etree.Namespace("otherNS")
         ns[None] = self.etree.ElementBase
 
     def tearDown(self):
         self.etree.Namespace("otherNS").clear()
         objectify.setPytypeAttributeTag()
-        objectify.unregister()
 
     def test_root(self):
-        root = self.etree.Element("test")
+        root = self.Element("test")
         self.assert_(isinstance(root, objectify.ObjectifiedElement))
 
     def test_str(self):
-        root = self.etree.Element("test")
+        root = self.Element("test")
         self.assertEquals('', str(root))
 
     def test_child(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         self.assertEquals("0", root.c1.c2.text)
 
     def test_child_getattr(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         self.assertEquals("0", getattr(root.c1, "{objectified}c2").text)
         self.assertEquals("3", getattr(root.c1, "{otherNS}c2").text)
 
     def test_child_nonexistant(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         self.assertRaises(AttributeError, getattr, root.c1, "NOT_THERE")
         self.assertRaises(AttributeError, getattr, root.c1, "{unknownNS}c2")
 
     def test_addattr(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         self.assertEquals(1, len(root.c1))
         root.addattr("c1", "test")
         self.assertEquals(2, len(root.c1))
         self.assertEquals("test", root.c1[1].text)
 
     def test_addattr_element(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         self.assertEquals(1, len(root.c1))
 
-        new_el = self.etree.Element("test", myattr="5")
+        new_el = self.Element("test", myattr="5")
         root.addattr("c1", new_el)
         self.assertEquals(2, len(root.c1))
         self.assertEquals(None, root.c1[0].get("myattr"))
         self.assertEquals("5",  root.c1[1].get("myattr"))
 
     def test_addattr_list(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         self.assertEquals(1, len(root.c1))
 
-        new_el = self.etree.Element("test")
+        new_el = self.Element("test")
         self.etree.SubElement(new_el, "a", myattr="A")
         self.etree.SubElement(new_el, "a", myattr="B")
 
@@ -95,21 +103,21 @@
         self.assertEquals("B",  root.c1[2].get("myattr"))
 
     def test_child_addattr(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         self.assertEquals(3, len(root.c1.c2))
         root.c1.addattr("c2", 3)
         self.assertEquals(4, len(root.c1.c2))
         self.assertEquals("3", root.c1.c2[3].text)
 
     def test_child_index(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         self.assertEquals("0", root.c1.c2[0].text)
         self.assertEquals("1", root.c1.c2[1].text)
         self.assertEquals("2", root.c1.c2[2].text)
         self.assertRaises(IndexError, operator.itemgetter(3), root.c1.c2)
 
     def test_child_index_neg(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         self.assertEquals("0", root.c1.c2[0].text)
         self.assertEquals("0", root.c1.c2[-3].text)
         self.assertEquals("1", root.c1.c2[-2].text)
@@ -117,13 +125,13 @@
         self.assertRaises(IndexError, operator.itemgetter(-4), root.c1.c2)
 
     def test_child_len(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         self.assertEquals(1, len(root))
         self.assertEquals(1, len(root.c1))
         self.assertEquals(3, len(root.c1.c2))
 
     def test_child_iter(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         self.assertEquals([root],
                           list(iter(root)))
         self.assertEquals([root.c1],
@@ -132,13 +140,13 @@
                           list(iter((root.c1.c2))))
 
     def test_class_lookup(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         self.assert_(isinstance(root.c1.c2, objectify.ObjectifiedElement))
         self.assertFalse(isinstance(getattr(root.c1, "{otherNS}c2"),
                                     objectify.ObjectifiedElement))
 
     def test_dir(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         dir_c1 = dir(objectify.ObjectifiedElement) + ['c1']
         dir_c1.sort()
         dir_c2 = dir(objectify.ObjectifiedElement) + ['c2']
@@ -148,17 +156,17 @@
         self.assertEquals(dir_c2, dir(root.c1))
 
     def test_vars(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         self.assertEquals({'c1' : root.c1},    vars(root))
         self.assertEquals({'c2' : root.c1.c2}, vars(root.c1))
 
     def test_child_set_ro(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         self.assertRaises(TypeError, setattr, root.c1.c2, 'text',  "test")
         self.assertRaises(TypeError, setattr, root.c1.c2, 'pyval', "test")
 
     def test_setslice(self):
-        Element = self.etree.Element
+        Element = self.Element
         SubElement = self.etree.SubElement
         root = Element("root")
         root.c = ["c1", "c2"]
@@ -187,7 +195,7 @@
 
     def test_set_string(self):
         # make sure strings are not handled as sequences
-        Element = self.etree.Element
+        Element = self.Element
         SubElement = self.etree.SubElement
         root = Element("root")
         root.c = "TEST"
@@ -195,7 +203,7 @@
                           [ c.text for c in root.c ])
 
     def test_findall(self):
-        XML = self.etree.XML
+        XML = self.XML
         root = XML('<a><b><c/></b><b/><c><b/></c></a>')
         self.assertEquals(1, len(root.findall("c")))
         self.assertEquals(2, len(root.findall(".//c")))
@@ -204,14 +212,14 @@
                           root.getchildren()[:2])
 
     def test_findall_ns(self):
-        XML = self.etree.XML
+        XML = self.XML
         root = XML('<a xmlns:x="X" 
xmlns:y="Y"><x:b><c/></x:b><b/><c><x:b/><b/></c><b/></a>')
         self.assertEquals(2, len(root.findall(".//{X}b")))
         self.assertEquals(3, len(root.findall(".//b")))
         self.assertEquals(2, len(root.findall("b")))
 
     def test_build_tree(self):
-        root = self.etree.Element('root')
+        root = self.Element('root')
         root.a = 5
         root.b = 6
         self.assert_(isinstance(root, objectify.ObjectifiedElement))
@@ -219,7 +227,7 @@
         self.assert_(isinstance(root.b, objectify.IntElement))
 
     def test_type_none(self):
-        Element = self.etree.Element
+        Element = self.Element
         SubElement = self.etree.SubElement
 
         nil_attr = "{http://www.w3.org/2001/XMLSchema-instance}nil";
@@ -233,35 +241,35 @@
         self.assertFalse(root.none[1])
 
     def test_type_bool(self):
-        Element = self.etree.Element
+        Element = self.Element
         SubElement = self.etree.SubElement
         root = Element("{objectified}root")
         root.none = 'true'
         self.assert_(isinstance(root.none, objectify.BoolElement))
 
     def test_type_str(self):
-        Element = self.etree.Element
+        Element = self.Element
         SubElement = self.etree.SubElement
         root = Element("{objectified}root")
         root.none = "test"
         self.assert_(isinstance(root.none, objectify.StringElement))
 
     def test_type_int(self):
-        Element = self.etree.Element
+        Element = self.Element
         SubElement = self.etree.SubElement
         root = Element("{objectified}root")
         root.none = 5
         self.assert_(isinstance(root.none, objectify.IntElement))
 
     def test_type_float(self):
-        Element = self.etree.Element
+        Element = self.Element
         SubElement = self.etree.SubElement
         root = Element("{objectified}root")
         root.none = 5.5
         self.assert_(isinstance(root.none, objectify.FloatElement))
 
     def test_schema_types(self):
-        XML = self.etree.XML
+        XML = self.XML
         root = XML('''\
         <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
           <a xsi:type="integer">5</a>
@@ -280,14 +288,14 @@
         self.assertEquals(5.0, root.a[2])
 
     def test_type_str_sequence(self):
-        XML = self.etree.XML
+        XML = self.XML
         root = XML(u'<root><b>why</b><b>try</b></root>')
         strs = [ str(s) for s in root.b ]
         self.assertEquals(["why", "try"],
                           strs)
 
     def test_type_str_cmp(self):
-        XML = self.etree.XML
+        XML = self.XML
         root = XML(u'<root><b>test</b><b>taste</b></root>')
         self.assertFalse(root.b[0] <  root.b[1])
         self.assertFalse(root.b[0] <= root.b[1])
@@ -308,7 +316,7 @@
         self.assertFalse(root.b)
 
     def test_type_int_cmp(self):
-        XML = self.etree.XML
+        XML = self.XML
         root = XML(u'<root><b>5</b><b>6</b></root>')
         self.assert_(root.b[0] <  root.b[1])
         self.assert_(root.b[0] <= root.b[1])
@@ -329,7 +337,7 @@
         self.assertFalse(root.b)
 
     def test_type_bool_cmp(self):
-        XML = self.etree.XML
+        XML = self.XML
         root = XML(u'<root><b>false</b><b>true</b></root>')
         self.assert_(root.b[0] <  root.b[1])
         self.assert_(root.b[0] <= root.b[1])
@@ -353,7 +361,7 @@
         self.assertFalse(root.b)
 
     def test_type_annotation(self):
-        XML = self.etree.XML
+        XML = self.XML
         root = XML(u'''\
         <a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
           <b>5</b>
@@ -380,7 +388,7 @@
         self.assertEquals("float", child_types[7])
 
     def test_change_pytype_attribute(self):
-        XML = self.etree.XML
+        XML = self.XML
 
         xml = u'''\
         <a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
@@ -457,25 +465,25 @@
                 pytype.register()
 
     def test_object_path(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( "root.c1.c2" )
         self.assertEquals(root.c1.c2.text, path.find(root).text)
         self.assertEquals(root.c1.c2.text, path(root).text)
 
     def test_object_path_list(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( ['root', 'c1', 'c2'] )
         self.assertEquals(root.c1.c2.text, path.find(root).text)
         self.assertEquals(root.c1.c2.text, path(root).text)
 
     def test_object_path_fail(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( "root.c1.c99" )
         self.assertRaises(AttributeError, path, root)
         self.assertEquals(None, path(root, None))
 
     def test_object_path_syntax(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath("root .    {objectified}c1.   c2")
         self.assertEquals(root.c1.c2.text, path(root).text)
 
@@ -483,7 +491,7 @@
         self.assertEquals(root.c1.c2.text, path(root).text)
 
     def test_object_path_hasattr(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( "root" )
         self.assert_(path.hasattr(root))
         path = objectify.ObjectPath( "root.c1" )
@@ -502,17 +510,17 @@
         self.assertFalse(path.hasattr(root))
 
     def test_object_path_dot_root(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( ".c1.c2" )
         self.assertEquals(root.c1.c2.text, path(root).text)
 
     def test_object_path_dot_root_list(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( ['', 'c1', 'c2'] )
         self.assertEquals(root.c1.c2.text, path(root).text)
 
     def test_object_path_index(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( "root.c1[0].c2[0]" )
         self.assertEquals(root.c1.c2.text, path(root).text)
 
@@ -532,7 +540,7 @@
         self.assertEquals(root.c1.c2[-3].text, path(root).text)
 
     def test_object_path_index_list(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( ['root', 'c1[0]', 'c2[0]'] )
         self.assertEquals(root.c1.c2.text, path(root).text)
 
@@ -567,7 +575,7 @@
                           ['', '', ''])
 
     def test_object_path_index_fail_lookup(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath("root.c1[9999].c2")
         self.assertRaises(AttributeError, path, root)
 
@@ -584,7 +592,7 @@
         self.assertRaises(AttributeError, path, root)
 
     def test_object_path_ns(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( "{objectified}root.c1.c2" )
         self.assertEquals(root.c1.c2.text, path.find(root).text)
         path = objectify.ObjectPath( "{objectified}root.{objectified}c1.c2" )
@@ -598,7 +606,7 @@
                           path.find(root).text)
 
     def test_object_path_ns_list(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( ['{objectified}root', 'c1', 'c2'] )
         self.assertEquals(root.c1.c2.text, path.find(root).text)
         path = objectify.ObjectPath( ['{objectified}root', '{objectified}c1', 
'c2'] )
@@ -616,7 +624,7 @@
                           path.find(root).text)
 
     def test_object_path_set(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( "root.c1.c2" )
         self.assertEquals(root.c1.c2.text, path.find(root).text)
         self.assertEquals("1", root.c1.c2[1].text)
@@ -629,12 +637,12 @@
         self.assertEquals("1", root.c1.c2[1].text)
 
     def test_object_path_set_element(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( "root.c1.c2" )
         self.assertEquals(root.c1.c2.text, path.find(root).text)
         self.assertEquals("1", root.c1.c2[1].text)
 
-        new_el = etree.Element("{objectified}test")
+        new_el = self.Element("{objectified}test")
         etree.SubElement(new_el, "{objectified}sub", myattr="ATTR").a = "TEST"
         path.setattr(root, new_el.sub)
 
@@ -644,7 +652,7 @@
         self.assertEquals("1", root.c1.c2[1].text)
 
     def test_object_path_set_create(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( "root.c1.c99" )
         self.assertRaises(AttributeError, path.find, root)
 
@@ -656,11 +664,11 @@
         self.assertEquals(new_value, path(root).text)
 
     def test_object_path_set_create_element(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( "root.c1.c99" )
         self.assertRaises(AttributeError, path.find, root)
 
-        new_el = etree.Element("{objectified}test")
+        new_el = self.Element("{objectified}test")
         etree.SubElement(new_el, "{objectified}sub", myattr="ATTR").a = "TEST"
         path.setattr(root, new_el.sub)
 
@@ -670,11 +678,11 @@
         self.assertEquals("TEST", path(root).a.text)
 
     def test_object_path_set_create_list(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( "root.c1.c99" )
         self.assertRaises(AttributeError, path.find, root)
 
-        new_el = etree.Element("{objectified}test")
+        new_el = self.Element("{objectified}test")
         new_el.a = ["TEST1", "TEST2"]
         new_el.a[0].set("myattr", "ATTR1")
         new_el.a[1].set("myattr", "ATTR2")
@@ -689,7 +697,7 @@
         self.assertEquals("TEST1", path(root).text)
 
     def test_object_path_addattr(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( "root.c1.c2" )
         self.assertEquals(3, len(root.c1.c2))
         path.addattr(root, "test")
@@ -698,11 +706,11 @@
                           [el.text for el in root.c1.c2])
 
     def test_object_path_addattr_element(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( "root.c1.c2" )
         self.assertEquals(3, len(root.c1.c2))
 
-        new_el = etree.Element("{objectified}test")
+        new_el = self.Element("{objectified}test")
         etree.SubElement(new_el, "{objectified}sub").a = "TEST"
 
         path.addattr(root, new_el.sub)
@@ -712,7 +720,7 @@
                           [el.text for el in root.c1.c2[:3]])
 
     def test_object_path_addattr_create(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( "root.c1.c99" )
         self.assertRaises(AttributeError, path.find, root)
 
@@ -724,11 +732,11 @@
         self.assertEquals(new_value, path(root).text)
 
     def test_object_path_addattr_create_element(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( "root.c1.c99" )
         self.assertRaises(AttributeError, path.find, root)
 
-        new_el = etree.Element("{objectified}test")
+        new_el = self.Element("{objectified}test")
         etree.SubElement(new_el, "{objectified}sub", myattr="ATTR").a = "TEST"
 
         path.addattr(root, new_el.sub)
@@ -738,11 +746,11 @@
         self.assertEquals("ATTR", root.c1.c99.get("myattr"))
 
     def test_object_path_addattr_create_list(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         path = objectify.ObjectPath( "root.c1.c99" )
         self.assertRaises(AttributeError, path.find, root)
 
-        new_el = etree.Element("{objectified}test")
+        new_el = self.Element("{objectified}test")
         new_el.a = ["TEST1", "TEST2"]
 
         self.assertEquals(2, len(new_el.a))
@@ -753,7 +761,7 @@
         self.assertEquals("TEST2", path(root)[1].text)
 
     def test_descendant_paths(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         self.assertEquals(
             ['{objectified}root', '{objectified}root.c1',
              '{objectified}root.c1.c2',
@@ -762,7 +770,7 @@
             root.descendantpaths())
 
     def test_descendant_paths_child(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         self.assertEquals(
             ['{objectified}c1', '{objectified}c1.c2',
              '{objectified}c1.c2[1]', '{objectified}c1.c2[2]',
@@ -770,7 +778,7 @@
             root.c1.descendantpaths())
 
     def test_descendant_paths_prefix(self):
-        root = self.etree.XML(xml_str)
+        root = self.XML(xml_str)
         self.assertEquals(
             ['root.{objectified}c1', 'root.{objectified}c1.c2',
              'root.{objectified}c1.c2[1]', 'root.{objectified}c1.c2[2]',


<Prev in Thread] Current Thread [Next in Thread>