fixes issue #1522237, bad init check in _threading_local

This commit is contained in:
Jack Diederich 2010-02-22 19:55:22 +00:00
parent b72b0eb357
commit 1ce6136018
2 changed files with 16 additions and 1 deletions

View File

@ -155,7 +155,7 @@ class _localbase(object):
object.__setattr__(self, '_local__args', (args, kw))
object.__setattr__(self, '_local__lock', RLock())
if args or kw and (cls.__init__ is object.__init__):
if (args or kw) and (cls.__init__ is object.__init__):
raise TypeError("Initialization arguments are not supported")
# We need to create the thread dict in anticipation of

View File

@ -105,6 +105,21 @@ class ThreadingLocalTest(unittest.TestCase):
self.assertTrue(passed[0])
def test_arguments(self):
# Issue 1522237
from thread import _local as local
from _threading_local import local as py_local
for cls in (local, py_local):
class MyLocal(cls):
def __init__(self, *args, **kwargs):
pass
MyLocal(a=1)
MyLocal(1)
self.assertRaises(TypeError, cls, a=1)
self.assertRaises(TypeError, cls, 1)
def test_main():
suite = unittest.TestSuite()