17db96d56Sopenharmony_ci"""Test the errno module 27db96d56Sopenharmony_ci Roger E. Masse 37db96d56Sopenharmony_ci""" 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ciimport errno 67db96d56Sopenharmony_ciimport unittest 77db96d56Sopenharmony_ci 87db96d56Sopenharmony_cistd_c_errors = frozenset(['EDOM', 'ERANGE']) 97db96d56Sopenharmony_ci 107db96d56Sopenharmony_ciclass ErrnoAttributeTests(unittest.TestCase): 117db96d56Sopenharmony_ci 127db96d56Sopenharmony_ci def test_for_improper_attributes(self): 137db96d56Sopenharmony_ci # No unexpected attributes should be on the module. 147db96d56Sopenharmony_ci for error_code in std_c_errors: 157db96d56Sopenharmony_ci self.assertTrue(hasattr(errno, error_code), 167db96d56Sopenharmony_ci "errno is missing %s" % error_code) 177db96d56Sopenharmony_ci 187db96d56Sopenharmony_ci def test_using_errorcode(self): 197db96d56Sopenharmony_ci # Every key value in errno.errorcode should be on the module. 207db96d56Sopenharmony_ci for value in errno.errorcode.values(): 217db96d56Sopenharmony_ci self.assertTrue(hasattr(errno, value), 227db96d56Sopenharmony_ci 'no %s attr in errno' % value) 237db96d56Sopenharmony_ci 247db96d56Sopenharmony_ci 257db96d56Sopenharmony_ciclass ErrorcodeTests(unittest.TestCase): 267db96d56Sopenharmony_ci 277db96d56Sopenharmony_ci def test_attributes_in_errorcode(self): 287db96d56Sopenharmony_ci for attribute in errno.__dict__.keys(): 297db96d56Sopenharmony_ci if attribute.isupper(): 307db96d56Sopenharmony_ci self.assertIn(getattr(errno, attribute), errno.errorcode, 317db96d56Sopenharmony_ci 'no %s attr in errno.errorcode' % attribute) 327db96d56Sopenharmony_ci 337db96d56Sopenharmony_ci 347db96d56Sopenharmony_ciif __name__ == '__main__': 357db96d56Sopenharmony_ci unittest.main() 36