summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_timeit.py
diff options
context:
space:
mode:
authorRobert Collins <rbtcollins@hp.com>2015-03-17 20:54:50 (GMT)
committerRobert Collins <rbtcollins@hp.com>2015-03-17 20:54:50 (GMT)
commit302dbc6792895de98ab14b382e7a35f512396ac7 (patch)
tree9c83183ef5b8dc84fa2d29b15b6ef3e3beb726c3 /Lib/test/test_timeit.py
parentf024d263b4af789af0eb3727417bbeec582f69eb (diff)
downloadcpython-302dbc6792895de98ab14b382e7a35f512396ac7.zip
cpython-302dbc6792895de98ab14b382e7a35f512396ac7.tar.gz
cpython-302dbc6792895de98ab14b382e7a35f512396ac7.tar.bz2
Issue #18983: Allow selection of output units in timeit.
This allows manual selection of a specific unit such as usecs rather than the use of a heuristic. This is intended to aid machine processing of timeit output. Patch by Serhiy Storchaka.
Diffstat (limited to 'Lib/test/test_timeit.py')
-rw-r--r--Lib/test/test_timeit.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/Lib/test/test_timeit.py b/Lib/test/test_timeit.py
index 267d2c8..eebad18 100644
--- a/Lib/test/test_timeit.py
+++ b/Lib/test/test_timeit.py
@@ -312,6 +312,26 @@ class TestTimeit(unittest.TestCase):
10000 loops, best of 3: 50 usec per loop
"""))
+ def test_main_with_time_unit(self):
+ unit_sec = self.run_main(seconds_per_increment=0.002,
+ switches=['-u', 'sec'])
+ self.assertEqual(unit_sec,
+ "1000 loops, best of 3: 0.002 sec per loop\n")
+ unit_msec = self.run_main(seconds_per_increment=0.002,
+ switches=['-u', 'msec'])
+ self.assertEqual(unit_msec,
+ "1000 loops, best of 3: 2 msec per loop\n")
+ unit_usec = self.run_main(seconds_per_increment=0.002,
+ switches=['-u', 'usec'])
+ self.assertEqual(unit_usec,
+ "1000 loops, best of 3: 2e+03 usec per loop\n")
+ # Test invalid unit input
+ with captured_stderr() as error_stringio:
+ invalid = self.run_main(seconds_per_increment=0.002,
+ switches=['-u', 'parsec'])
+ self.assertEqual(error_stringio.getvalue(),
+ "Unrecognized unit. Please select usec, msec, or sec.\n")
+
def test_main_exception(self):
with captured_stderr() as error_stringio:
s = self.run_main(switches=['1/0'])