Issue #5633: Fixed timeit when the statement is a string and the setup is not.
This commit is contained in:
parent
5127ed727c
commit
59ea508bb8
|
@ -120,6 +120,9 @@ class TestTimeit(unittest.TestCase):
|
|||
def test_timeit_callable_stmt(self):
|
||||
self.timeit(self.fake_callable_stmt, self.fake_setup, number=3)
|
||||
|
||||
def test_timeit_callable_setup(self):
|
||||
self.timeit(self.fake_stmt, self.fake_callable_setup, number=3)
|
||||
|
||||
def test_timeit_callable_stmt_and_setup(self):
|
||||
self.timeit(self.fake_callable_stmt,
|
||||
self.fake_callable_setup, number=3)
|
||||
|
@ -169,6 +172,10 @@ class TestTimeit(unittest.TestCase):
|
|||
self.repeat(self.fake_callable_stmt, self.fake_setup,
|
||||
repeat=3, number=5)
|
||||
|
||||
def test_repeat_callable_setup(self):
|
||||
self.repeat(self.fake_stmt, self.fake_callable_setup,
|
||||
repeat=3, number=5)
|
||||
|
||||
def test_repeat_callable_stmt_and_setup(self):
|
||||
self.repeat(self.fake_callable_stmt, self.fake_callable_setup,
|
||||
repeat=3, number=5)
|
||||
|
|
|
@ -78,7 +78,7 @@ else:
|
|||
# in Timer.__init__() depend on setup being indented 4 spaces and stmt
|
||||
# being indented 8 spaces.
|
||||
template = """
|
||||
def inner(_it, _timer):
|
||||
def inner(_it, _timer%(init)s):
|
||||
%(setup)s
|
||||
_t0 = _timer()
|
||||
for _i in _it:
|
||||
|
@ -132,9 +132,10 @@ class Timer:
|
|||
stmt = reindent(stmt, 8)
|
||||
if isinstance(setup, basestring):
|
||||
setup = reindent(setup, 4)
|
||||
src = template % {'stmt': stmt, 'setup': setup}
|
||||
src = template % {'stmt': stmt, 'setup': setup, 'init': ''}
|
||||
elif hasattr(setup, '__call__'):
|
||||
src = template % {'stmt': stmt, 'setup': '_setup()'}
|
||||
src = template % {'stmt': stmt, 'setup': '_setup()',
|
||||
'init': ', _setup=_setup'}
|
||||
ns['_setup'] = setup
|
||||
else:
|
||||
raise ValueError("setup is neither a string nor callable")
|
||||
|
|
Loading…
Reference in New Issue