mirror of
https://github.com/python/cpython.git
synced 2025-07-16 15:55:18 +00:00

requires them. Disable executable bits and shebang lines in test and benchmark files in order to prevent using a random system python, and in source files of modules which don't provide command line interface. Fixed shebang line to use python3 executable in the unittestgui script.
40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
"""Test the errno module
|
|
Roger E. Masse
|
|
"""
|
|
|
|
import errno
|
|
from test import support
|
|
import unittest
|
|
|
|
std_c_errors = frozenset(['EDOM', 'ERANGE'])
|
|
|
|
class ErrnoAttributeTests(unittest.TestCase):
|
|
|
|
def test_for_improper_attributes(self):
|
|
# No unexpected attributes should be on the module.
|
|
for error_code in std_c_errors:
|
|
self.assertTrue(hasattr(errno, error_code),
|
|
"errno is missing %s" % error_code)
|
|
|
|
def test_using_errorcode(self):
|
|
# Every key value in errno.errorcode should be on the module.
|
|
for value in errno.errorcode.values():
|
|
self.assertTrue(hasattr(errno, value),
|
|
'no %s attr in errno' % value)
|
|
|
|
|
|
class ErrorcodeTests(unittest.TestCase):
|
|
|
|
def test_attributes_in_errorcode(self):
|
|
for attribute in errno.__dict__.keys():
|
|
if attribute.isupper():
|
|
self.assertIn(getattr(errno, attribute), errno.errorcode,
|
|
'no %s attr in errno.errorcode' % attribute)
|
|
|
|
|
|
def test_main():
|
|
support.run_unittest(ErrnoAttributeTests, ErrorcodeTests)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
test_main()
|