|
7 | 7 | from test import test_support |
8 | 8 | import unittest |
9 | 9 |
|
10 | | -errors = ['E2BIG', 'EACCES', 'EADDRINUSE', 'EADDRNOTAVAIL', 'EADV', |
11 | | - 'EAFNOSUPPORT', 'EAGAIN', 'EALREADY', 'EBADE', 'EBADF', |
12 | | - 'EBADFD', 'EBADMSG', 'EBADR', 'EBADRQC', 'EBADSLT', |
13 | | - 'EBFONT', 'EBUSY', 'ECHILD', 'ECHRNG', 'ECOMM', |
14 | | - 'ECONNABORTED', 'ECONNREFUSED', 'ECONNRESET', |
15 | | - 'EDEADLK', 'EDEADLOCK', 'EDESTADDRREQ', 'EDOTDOT', 'EDOM', |
16 | | - 'EDQUOT', 'EEXIST', 'EFAULT', 'EFBIG', 'EHOSTDOWN', |
17 | | - 'EHOSTUNREACH', 'EIDRM', 'EILSEQ', 'EINPROGRESS', |
18 | | - 'EINTR', 'EINVAL', 'EIO', 'EISCONN', 'EISDIR', 'EISNAM', |
19 | | - 'EL2HLT', 'EL2NSYNC', 'EL3HLT', 'EL3RST', 'ELIBACC', |
20 | | - 'ELIBBAD', 'ELIBEXEC', 'ELIBMAX', 'ELIBSCN', 'ELNRNG', |
21 | | - 'ELOOP', 'EMFILE', 'EMLINK', 'EMSGSIZE', 'EMULTIHOP', |
22 | | - 'ENAMETOOLONG', 'ENAVAIL', 'ENETDOWN', 'ENETRESET', 'ENETUNREACH', |
23 | | - 'ENFILE', 'ENOANO', 'ENOBUFS', 'ENOCSI', 'ENODATA', |
24 | | - 'ENODEV', 'ENOENT', 'ENOEXEC', 'ENOLCK', 'ENOLINK', |
25 | | - 'ENOMEM', 'ENOMSG', 'ENONET', 'ENOPKG', 'ENOPROTOOPT', |
26 | | - 'ENOSPC', 'ENOSR', 'ENOSTR', 'ENOSYS', 'ENOTBLK', |
27 | | - 'ENOTCONN', 'ENOTDIR', 'ENOTEMPTY', 'ENOTNAM', 'ENOTOBACCO', 'ENOTSOCK', |
28 | | - 'ENOTTY', 'ENOTUNIQ', 'ENXIO', 'EOPNOTSUPP', |
29 | | - 'EOVERFLOW', 'EPERM', 'EPFNOSUPPORT', 'EPIPE', |
30 | | - 'EPROTO', 'EPROTONOSUPPORT', 'EPROTOTYPE', |
31 | | - 'ERANGE', 'EREMCHG', 'EREMOTE', 'EREMOTEIO', 'ERESTART', |
32 | | - 'EROFS', 'ESHUTDOWN', 'ESOCKTNOSUPPORT', 'ESPIPE', |
33 | | - 'ESRCH', 'ESRMNT', 'ESTALE', 'ESTRPIPE', 'ETIME', |
34 | | - 'ETIMEDOUT', 'ETOOMANYREFS', 'ETXTBSY', 'EUCLEAN', 'EUNATCH', |
35 | | - 'EUSERS', 'EWOULDBLOCK', 'EXDEV', 'EXFULL', |
36 | | - 'WSABASEERR', 'WSADESCRIPTIO', 'WSAEACCES', 'WSAEADDRINUSE', |
37 | | - 'WSAEADDRNOTAVAIL', 'WSAEAFNOSUPPORT', 'WSAEALREADY', |
38 | | - 'WSAEBADF', 'WSAECONNABORTED', 'WSAECONNREFUSED', |
39 | | - 'WSAECONNRESET', 'WSAEDESTADDRREQ', 'WSAEDISCON', |
40 | | - 'WSAEDQUOT', 'WSAEFAULT', 'WSAEHOSTDOWN', 'WSAEHOSTUNREACH', |
41 | | - 'WSAEINPROGRESS', 'WSAEINTR', 'WSAEINVAL', 'WSAEISCONN', |
42 | | - 'WSAELOOP', 'WSAEMFILE', 'WSAEMSGSIZE', 'WSAENAMETOOLONG', |
43 | | - 'WSAENETDOWN', 'WSAENETRESET', 'WSAENETUNREACH', |
44 | | - 'WSAENOBUFS', 'WSAENOPROTOOPT', 'WSAENOTCONN', |
45 | | - 'WSAENOTEMPTY', 'WSAENOTSOCK', 'WSAEOPNOTSUPP', |
46 | | - 'WSAEPFNOSUPPORT', 'WSAEPROCLIM', 'WSAEPROTONOSUPPORT', |
47 | | - 'WSAEPROTOTYPE', 'WSAEREMOTE', 'WSAESHUTDOWN', |
48 | | - 'WSAESOCKTNOSUPPORT', 'WSAESTALE', 'WSAETIMEDOUT', |
49 | | - 'WSAETOOMANYREFS', 'WSAEUSERS', 'WSAEWOULDBLOCK', |
50 | | - 'WSAGETASYNCBUFLE', 'WSAGETASYNCERRO', 'WSAGETSELECTERRO', |
51 | | - 'WSAGETSELECTEVEN', 'WSAHOS', 'WSAMAKEASYNCREPL', |
52 | | - 'WSAMAKESELECTREPL', 'WSAN', 'WSANOTINITIALISED', 'WSASY', |
53 | | - 'WSASYSNOTREADY', 'WSATR', 'WSAVERNOTSUPPORTED'] |
54 | | - |
| 10 | +std_c_errors = frozenset(['EDOM', 'ERANGE']) |
55 | 11 |
|
56 | 12 | class ErrnoAttributeTests(unittest.TestCase): |
57 | 13 |
|
58 | 14 | def test_for_improper_attributes(self): |
59 | 15 | # No unexpected attributes should be on the module. |
60 | | - errors_set = set(errors) |
61 | | - for attribute in errno.__dict__.keys(): |
62 | | - if attribute.isupper(): |
63 | | - self.assert_(attribute in errors_set, |
64 | | - "%s is an unexpected error value" % attribute) |
| 16 | + for error_code in std_c_errors: |
| 17 | + self.assert_(hasattr(errno, error_code), |
| 18 | + "errno is missing %s" % error_code) |
65 | 19 |
|
66 | 20 | def test_using_errorcode(self): |
67 | 21 | # Every key value in errno.errorcode should be on the module. |
|
0 commit comments