]> granicus.if.org Git - python/commitdiff
in the tests of ElementTree, verify that the C accelerator is imported or not importe...
authorEli Bendersky <eliben@gmail.com>
Thu, 16 Feb 2012 04:52:39 +0000 (06:52 +0200)
committerEli Bendersky <eliben@gmail.com>
Thu, 16 Feb 2012 04:52:39 +0000 (06:52 +0200)
Lib/test/test_xml_etree.py
Lib/test/test_xml_etree_c.py

index a0ee377c09e72cfdf3e380e898bcecf6ed309ed5..0d1eb2241c09529348dc317516c680a3c81529b5 100644 (file)
@@ -1904,12 +1904,22 @@ class CleanContext(object):
         self.checkwarnings.__exit__(*args)
 
 
+class TestAcceleratorNotImported(unittest.TestCase):
+    # Test that the C accelerator was not imported for pyET
+    def test_correct_import_pyET(self):
+        # In the C accelerator, Element is just a factory function, not an
+        # actual class. In the Python version it's a class.
+        self.assertIsInstance(pyET.Element, type)
+
+
 def test_main(module=pyET):
     from test import test_xml_etree
 
     # The same doctests are used for both the Python and the C implementations
     test_xml_etree.ET = module
 
+    support.run_unittest(TestAcceleratorNotImported)
+
     # XXX the C module should give the same warnings as the Python module
     with CleanContext(quiet=(module is not pyET)):
         support.run_doctest(test_xml_etree, verbosity=True)
index 6f6200933d99a953911c14a6b2b50a284f183e76..a0fcb836ea757bbf3d22ab5463d1c57f82c487d6 100644 (file)
@@ -46,6 +46,16 @@ class MiscTests(unittest.TestCase):
         finally:
             data = None
 
+class TestAcceleratorImported(unittest.TestCase):
+    # Test that the C accelerator was imported, as expected
+    def test_correct_import_cET(self):
+        # In the C accelerator, Element is just a factory function, not an
+        # actual class. In the Python version it's a class.
+        self.assertNotIsInstance(cET.Element, type)
+
+    def test_correct_import_cET_alias(self):
+        self.assertNotIsInstance(cET_alias.Element, type)
+
 
 def test_main():
     from test import test_xml_etree, test_xml_etree_c
@@ -53,7 +63,7 @@ def test_main():
     # Run the tests specific to the C implementation
     support.run_doctest(test_xml_etree_c, verbosity=True)
 
-    support.run_unittest(MiscTests)
+    support.run_unittest(MiscTests, TestAcceleratorImported)
 
     # Run the same test suite as the Python module
     test_xml_etree.test_main(module=cET)