diff options
Diffstat (limited to 'lib/python2.7/test/test_getargs.py')
-rw-r--r-- | lib/python2.7/test/test_getargs.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/python2.7/test/test_getargs.py b/lib/python2.7/test/test_getargs.py new file mode 100644 index 0000000..4ac5aa2 --- /dev/null +++ b/lib/python2.7/test/test_getargs.py @@ -0,0 +1,31 @@ +""" +Test the internal getargs.c implementation + + PyArg_ParseTuple() is defined here. + +The test here is not intended to test all of the module, just the +single case that failed between 2.1 and 2.2a2. +""" + +# marshal.loads() uses PyArg_ParseTuple(args, "s#:loads") +# The s code will cause a Unicode conversion to occur. This test +# verify that the error is propagated properly from the C code back to +# Python. + +import marshal +import unittest +from test import test_support + +class GetArgsTest(unittest.TestCase): + # If the encoding succeeds using the current default encoding, + # this test will fail because it does not test the right part of the + # PyArg_ParseTuple() implementation. + def test_with_marshal(self): + arg = unicode(r'\222', 'unicode-escape') + self.assertRaises(UnicodeError, marshal.loads, arg) + +def test_main(): + test_support.run_unittest(GetArgsTest) + +if __name__ == '__main__': + test_main() |