1 #! /usr/bin/env python 2 """Test the errno module 3 Roger E. Masse 4 """ 5 6 import errno 7 from test import test_support 8 import unittest 9 10 std_c_errors = frozenset(['EDOM', 'ERANGE']) 11 12 class ErrnoAttributeTests(unittest.TestCase): 13 14 def test_for_improper_attributes(self): 15 # No unexpected attributes should be on the module. 16 for error_code in std_c_errors: 17 self.assertTrue(hasattr(errno, error_code), 18 "errno is missing %s" % error_code) 19 20 def test_using_errorcode(self): 21 # Every key value in errno.errorcode should be on the module. 22 for value in errno.errorcode.itervalues(): 23 self.assertTrue(hasattr(errno, value), 'no %s attr in errno' % value) 24 25 26 class ErrorcodeTests(unittest.TestCase): 27 28 def test_attributes_in_errorcode(self): 29 for attribute in errno.__dict__.iterkeys(): 30 if attribute.isupper(): 31 self.assertIn(getattr(errno, attribute), errno.errorcode, 32 'no %s attr in errno.errorcode' % attribute) 33 34 35 def test_main(): 36 test_support.run_unittest(ErrnoAttributeTests, ErrorcodeTests) 37 38 39 if __name__ == '__main__': 40 test_main() 41