Issue #8950: Make PyArg_Parse* with 'L' code raise for float inputs,

instead of warning.  This makes it consistent with the other integer
codes.
This commit is contained in:
Mark Dickinson 2010-06-10 16:05:10 +00:00
parent 37296e89a5
commit c73013127b
3 changed files with 9 additions and 33 deletions

View file

@ -1,7 +1,6 @@
import unittest
from test import support
from _testcapi import getargs_keywords
import warnings
"""
> How about the following counterproposal. This also changes some of
@ -190,21 +189,7 @@ class LongLong_TestCase(unittest.TestCase):
from _testcapi import getargs_L
# L returns 'long long', and does range checking (LLONG_MIN
# ... LLONG_MAX)
with warnings.catch_warnings():
warnings.filterwarnings(
"ignore",
category=DeprecationWarning,
message=".*integer argument expected, got float",
module=__name__)
self.assertEqual(3, getargs_L(3.14))
with warnings.catch_warnings():
warnings.filterwarnings(
"error",
category=DeprecationWarning,
message=".*integer argument expected, got float",
module="unittest")
self.assertRaises(DeprecationWarning, getargs_L, 3.14)
self.assertRaises(TypeError, getargs_L, 3.14)
self.assertRaises(TypeError, getargs_L, "Hello")
self.assertEqual(99, getargs_L(Int()))