[Python-checkins] r61480 - in python/trunk: Lib/test/test_errno.py Misc/NEWS

brett.cannon python-checkins at python.org
Tue Mar 18 04:46:23 CET 2008


Author: brett.cannon
Date: Tue Mar 18 04:46:22 2008
New Revision: 61480

Modified:
   python/trunk/Lib/test/test_errno.py
   python/trunk/Misc/NEWS
Log:
test_errno was a no-op test; now it actually tests things and uses unittest.


Modified: python/trunk/Lib/test/test_errno.py
==============================================================================
--- python/trunk/Lib/test/test_errno.py	(original)
+++ python/trunk/Lib/test/test_errno.py	Tue Mar 18 04:46:22 2008
@@ -4,7 +4,8 @@
 """
 
 import errno
-from test.test_support import verbose
+from test import test_support
+import unittest
 
 errors = ['E2BIG', 'EACCES', 'EADDRINUSE', 'EADDRNOTAVAIL', 'EADV',
           'EAFNOSUPPORT', 'EAGAIN', 'EALREADY', 'EBADE', 'EBADF',
@@ -33,17 +34,33 @@
           'ETIMEDOUT', 'ETOOMANYREFS', 'ETXTBSY', 'EUNATCH',
           'EUSERS', 'EWOULDBLOCK', 'EXDEV', 'EXFULL']
 
-#
-# This is a wee bit bogus since the module only conditionally adds
-# errno constants if they have been defined by errno.h  However, this
-# test seems to work on SGI, Sparc & intel Solaris, and linux.
-#
-for error in errors:
-    try:
-        a = getattr(errno, error)
-    except AttributeError:
-        if verbose:
-            print '%s: not found' % error
-    else:
-        if verbose:
-            print '%s: %d' % (error, a)
+
+class ErrnoAttributeTests(unittest.TestCase):
+
+    def test_for_improper_attributes(self):
+        # No unexpected attributes should be on the module.
+        errors_set = set(errors)
+        for attribute in errno.__dict__.iterkeys():
+            if attribute.isupper():
+                self.assert_(attribute in errors_set)
+
+    def test_using_errorcode(self):
+        # Every key value in errno.errorcode should be on the module.
+        for value in errno.errorcode.itervalues():
+            self.assert_(hasattr(errno, value))
+
+
+class ErrorcodeTests(unittest.TestCase):
+
+    def test_attributes_in_errorcode(self):
+        for attribute in errno.__dict__.iterkeys():
+            if attribute.isupper():
+                self.assert_(getattr(errno, attribute) in errno.errorcode)
+
+
+def test_main():
+    test_support.run_unittest(ErrnoAttributeTests, ErrorcodeTests)
+
+
+if __name__ == '__main__':
+    test_main()

Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS	(original)
+++ python/trunk/Misc/NEWS	Tue Mar 18 04:46:22 2008
@@ -78,6 +78,8 @@
 Tests
 -----
 
+- Rewrite test_errno to use unittest and no longer be a no-op.
+
 - GHOP 234: Convert test_extcall to doctest.
 
 - GHOP 290: Convert test_dbm and test_dummy_threading to unittest.


More information about the Python-checkins mailing list