]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #21853: Fixed the inspect module in unicode disabled build.
authorSerhiy Storchaka <storchaka@gmail.com>
Sun, 31 May 2015 05:01:00 +0000 (08:01 +0300)
committerSerhiy Storchaka <storchaka@gmail.com>
Sun, 31 May 2015 05:01:00 +0000 (08:01 +0300)
Lib/inspect.py
Lib/test/test_inspect.py

index 933694394dd1fe3880c998147b448da4d8420733..b08e145f07d9ee681d144e3f1c4e775164cc4a50 100644 (file)
@@ -969,8 +969,13 @@ def getcallargs(func, *positional, **named):
         assign(varkw, named)
     elif named:
         unexpected = next(iter(named))
-        if isinstance(unexpected, unicode):
-            unexpected = unexpected.encode(sys.getdefaultencoding(), 'replace')
+        try:
+            unicode
+        except NameError:
+            pass
+        else:
+            if isinstance(unexpected, unicode):
+                unexpected = unexpected.encode(sys.getdefaultencoding(), 'replace')
         raise TypeError("%s() got an unexpected keyword argument '%s'" %
                         (f_name, unexpected))
     unassigned = num_args - len([arg for arg in args if is_assigned(arg)])
index 4130cd0b502bcc92443d817aea104598dfa1ba89..ecc04cb75d59b128b13e1cb10078e725ba3a87ef 100644 (file)
@@ -8,7 +8,7 @@ import datetime
 from UserList import UserList
 from UserDict import UserDict
 
-from test.test_support import run_unittest, check_py3k_warnings
+from test.test_support import run_unittest, check_py3k_warnings, have_unicode
 
 with check_py3k_warnings(
         ("tuple parameter unpacking has been removed", SyntaxWarning),
@@ -17,7 +17,10 @@ with check_py3k_warnings(
     from test import inspect_fodder2 as mod2
 
 # C module for test_findsource_binary
-import unicodedata
+try:
+    import unicodedata
+except ImportError:
+    unicodedata = None
 
 # Functions tested in this suite:
 # ismodule, isclass, ismethod, isfunction, istraceback, isframe, iscode,
@@ -798,7 +801,8 @@ class TestGetcallargsFunctions(unittest.TestCase):
             self.assertEqualException(f, '2, c=3')
             self.assertEqualException(f, '2, 3, c=4')
             self.assertEqualException(f, '2, c=4, b=3')
-            self.assertEqualException(f, '**{u"\u03c0\u03b9": 4}')
+            if have_unicode:
+                self.assertEqualException(f, '**{u"\u03c0\u03b9": 4}')
             # f got multiple values for keyword argument
             self.assertEqualException(f, '1, a=2')
             self.assertEqualException(f, '1, **{"a":2}')