| 
									
										
										
										
											1996-12-16 20:20:33 +00:00
										 |  |  | #! /usr/bin/env python | 
					
						
							|  |  |  | """Test the errno module
 | 
					
						
							|  |  |  |    Roger E. Masse | 
					
						
							|  |  |  | """
 | 
					
						
							| 
									
										
										
										
											1996-12-16 20:40:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | import errno | 
					
						
							| 
									
										
										
										
											2008-03-18 03:46:22 +00:00
										 |  |  | from test import test_support | 
					
						
							|  |  |  | import unittest | 
					
						
							| 
									
										
										
										
											1996-12-16 20:20:33 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-03-18 15:52:00 +00:00
										 |  |  | std_c_errors = frozenset(['EDOM', 'ERANGE']) | 
					
						
							| 
									
										
										
										
											2008-03-18 03:46:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class ErrnoAttributeTests(unittest.TestCase): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_for_improper_attributes(self): | 
					
						
							|  |  |  |         # No unexpected attributes should be on the module. | 
					
						
							| 
									
										
										
										
											2008-03-18 15:52:00 +00:00
										 |  |  |         for error_code in std_c_errors: | 
					
						
							|  |  |  |             self.assert_(hasattr(errno, error_code), | 
					
						
							|  |  |  |                             "errno is missing %s" % error_code) | 
					
						
							| 
									
										
										
										
											2008-03-18 03:46:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def test_using_errorcode(self): | 
					
						
							|  |  |  |         # Every key value in errno.errorcode should be on the module. | 
					
						
							|  |  |  |         for value in errno.errorcode.itervalues(): | 
					
						
							| 
									
										
										
										
											2008-03-18 06:03:46 +00:00
										 |  |  |             self.assert_(hasattr(errno, value), 'no %s attr in errno' % value) | 
					
						
							| 
									
										
										
										
											2008-03-18 03:46:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ErrorcodeTests(unittest.TestCase): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_attributes_in_errorcode(self): | 
					
						
							|  |  |  |         for attribute in errno.__dict__.iterkeys(): | 
					
						
							|  |  |  |             if attribute.isupper(): | 
					
						
							| 
									
										
										
										
											2008-03-18 06:03:46 +00:00
										 |  |  |                 self.assert_(getattr(errno, attribute) in errno.errorcode, | 
					
						
							|  |  |  |                              'no %s attr in errno.errorcode' % attribute) | 
					
						
							| 
									
										
										
										
											2008-03-18 03:46:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_main(): | 
					
						
							|  |  |  |     test_support.run_unittest(ErrnoAttributeTests, ErrorcodeTests) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							|  |  |  |     test_main() |