""" | |
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() |