summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Belopolsky <alexander.belopolsky@gmail.com>2012-06-22 20:09:42 (GMT)
committerAlexander Belopolsky <alexander.belopolsky@gmail.com>2012-06-22 20:09:42 (GMT)
commit7e3e496abb2bb9f5dd0956074516c20d5a0f63ef (patch)
tree7e966e9f626cc32af57a90432f58487bb26f3057
parent93c9cd07b62371b99f712e41c7bec71dad1c86ec (diff)
parent48ed36026bc57c10c0408fcca85dd97e699caac6 (diff)
downloadcpython-7e3e496abb2bb9f5dd0956074516c20d5a0f63ef.zip
cpython-7e3e496abb2bb9f5dd0956074516c20d5a0f63ef.tar.gz
cpython-7e3e496abb2bb9f5dd0956074516c20d5a0f63ef.tar.bz2
merge
-rw-r--r--Lib/test/test_capi.py40
1 files changed, 21 insertions, 19 deletions
diff --git a/Lib/test/test_capi.py b/Lib/test/test_capi.py
index e24bd6f..2692b89d 100644
--- a/Lib/test/test_capi.py
+++ b/Lib/test/test_capi.py
@@ -222,36 +222,38 @@ class SkipitemTest(unittest.TestCase):
in Python/getargs.c, but neglected to update our poor friend
skipitem() in the same file. (If so, shame on you!)
- This function brute-force tests all** ASCII characters (1 to 127
- inclusive) as format units, checking to see that
- PyArg_ParseTupleAndKeywords() return consistent errors both when
- the unit is attempted to be used and when it is skipped. If the
- format unit doesn't exist, we'll get one of two specific error
- messages (one for used, one for skipped); if it does exist we
- *won't* get that error--we'll get either no error or some other
- error. If we get the "does not exist" error for one test and
- not for the other, there's a mismatch, and the test fails.
-
- ** Okay, it actually skips some ASCII characters. Some characters
- have special funny semantics, and it would be difficult to
- accomodate them here.
+ With a few exceptions**, this function brute-force tests all
+ printable ASCII*** characters (32 to 126 inclusive) as format units,
+ checking to see that PyArg_ParseTupleAndKeywords() return consistent
+ errors both when the unit is attempted to be used and when it is
+ skipped. If the format unit doesn't exist, we'll get one of two
+ specific error messages (one for used, one for skipped); if it does
+ exist we *won't* get that error--we'll get either no error or some
+ other error. If we get the specific "does not exist" error for one
+ test and not for the other, there's a mismatch, and the test fails.
+
+ ** Some format units have special funny semantics and it would
+ be difficult to accomodate them here. Since these are all
+ well-established and properly skipped in skipitem() we can
+ get away with not testing them--this test is really intended
+ to catch *new* format units.
+
+ *** Python C source files must be ASCII. Therefore it's impossible
+ to have non-ASCII format units.
+
"""
empty_tuple = ()
tuple_1 = (0,)
dict_b = {'b':1}
keywords = ["a", "b"]
- # Python C source files must be ASCII,
- # therefore we'll never have a format unit > 127
- for i in range(1, 128):
+ for i in range(32, 127):
c = chr(i)
- # skip non-printable characters, no one is insane enough to define
- # one as a format unit
# skip parentheses, the error reporting is inconsistent about them
# skip 'e', it's always a two-character code
# skip '|' and '$', they don't represent arguments anyway
- if (not c.isprintable()) or (c in '()e|$'):
+ if c in '()e|$':
continue
# test the format unit when not skipped