Commit 561d5aa4 authored by Jack Diederich's avatar Jack Diederich

fixes issue #1522237, bad init check in _threading_local

parent dc8c2ada
......@@ -154,7 +154,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
......
......@@ -106,6 +106,21 @@ class ThreadingLocalTest(unittest.TestCase):
self.assertTrue(passed)
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()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment