diff options
author | Larry Hastings <larry@hastings.org> | 2012-05-05 23:54:29 (GMT) |
---|---|---|
committer | Larry Hastings <larry@hastings.org> | 2012-05-05 23:54:29 (GMT) |
commit | faf91e75ab287ae6c377b05b7eb91d7f5274fbc5 (patch) | |
tree | 5fd9ed01b383d818d84091f91efa22ce48b1bccb /Lib/test | |
parent | 6b03f2ce45785190c6a8da271199ff724ba559d8 (diff) | |
download | cpython-faf91e75ab287ae6c377b05b7eb91d7f5274fbc5.zip cpython-faf91e75ab287ae6c377b05b7eb91d7f5274fbc5.tar.gz cpython-faf91e75ab287ae6c377b05b7eb91d7f5274fbc5.tar.bz2 |
Issue #14705: Add 'p' format character to PyArg_ParseTuple* for bool support.
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_getargs2.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Lib/test/test_getargs2.py b/Lib/test/test_getargs2.py index fe1e7ce..48ca94e 100644 --- a/Lib/test/test_getargs2.py +++ b/Lib/test/test_getargs2.py @@ -214,6 +214,36 @@ class LongLong_TestCase(unittest.TestCase): self.assertEqual(VERY_LARGE & ULLONG_MAX, getargs_K(VERY_LARGE)) +class Paradox: + "This statement is false." + def __bool__(self): + raise NotImplementedError + +class Boolean_TestCase(unittest.TestCase): + def test_p(self): + from _testcapi import getargs_p + self.assertEqual(0, getargs_p(False)) + self.assertEqual(0, getargs_p(None)) + self.assertEqual(0, getargs_p(0)) + self.assertEqual(0, getargs_p(0.0)) + self.assertEqual(0, getargs_p(0j)) + self.assertEqual(0, getargs_p('')) + self.assertEqual(0, getargs_p(())) + self.assertEqual(0, getargs_p([])) + self.assertEqual(0, getargs_p({})) + + self.assertEqual(1, getargs_p(True)) + self.assertEqual(1, getargs_p(1)) + self.assertEqual(1, getargs_p(1.0)) + self.assertEqual(1, getargs_p(1j)) + self.assertEqual(1, getargs_p('x')) + self.assertEqual(1, getargs_p((1,))) + self.assertEqual(1, getargs_p([1])) + self.assertEqual(1, getargs_p({1:2})) + self.assertEqual(1, getargs_p(unittest.TestCase)) + + self.assertRaises(NotImplementedError, getargs_p, Paradox()) + class Tuple_TestCase(unittest.TestCase): def test_tuple(self): @@ -510,6 +540,7 @@ def test_main(): tests = [ Signed_TestCase, Unsigned_TestCase, + Boolean_TestCase, Tuple_TestCase, Keywords_TestCase, KeywordOnly_TestCase, |