diff options
| author | Scott Gasch <[email protected]> | 2021-09-15 09:32:08 -0700 |
|---|---|---|
| committer | Scott Gasch <[email protected]> | 2021-09-15 09:32:08 -0700 |
| commit | 4c315e387f18010ba0b5661744ad3c792f21d2d1 (patch) | |
| tree | a5657340bea356aa3aaf2c24b7f2be98bb4bc302 /unittest_utils.py | |
| parent | 83c1e0d04fe2e78963c8b508e8b7d0ae03bfcb16 (diff) | |
Adding doctests. Also added a logging filter.
Diffstat (limited to 'unittest_utils.py')
| -rw-r--r-- | unittest_utils.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/unittest_utils.py b/unittest_utils.py index 8a0556b..bb1a9b4 100644 --- a/unittest_utils.py +++ b/unittest_utils.py @@ -56,13 +56,14 @@ _db = '/home/scott/.python_unittest_performance_db' def check_method_for_perf_regressions(func: Callable) -> Callable: - """This is meant to be used on a method in a class that subclasses + """ + This is meant to be used on a method in a class that subclasses unittest.TestCase. When thus decorated it will time the execution of the code in the method, compare it with a database of historical perfmance, and fail the test with a perf-related message if it has become too slow. - """ + """ def load_known_test_performance_characteristics(): with open(_db, 'rb') as f: return pickle.load(f) @@ -107,7 +108,7 @@ def check_method_for_perf_regressions(func: Callable) -> Callable: ) else: stdev = statistics.stdev(hist) - limit = hist[-1] + stdev * 3 + limit = hist[-1] + stdev * 5 logger.debug( f'Max acceptable performace for {func.__name__} is {limit:f}s' ) @@ -117,12 +118,14 @@ def check_method_for_perf_regressions(func: Callable) -> Callable: ): msg = f'''{func_id} performance has regressed unacceptably. {hist[-1]:f}s is the slowest record in {len(hist)} db perf samples. -It just ran in {run_time:f}s which is >3 stdevs slower than the slowest sample. +It just ran in {run_time:f}s which is >5 stdevs slower than the slowest sample. Here is the current, full db perf timing distribution: -{hist}''' - slf = args[0] +''' + for x in hist: + msg += f'{x:f}\n' logger.error(msg) + slf = args[0] slf.fail(msg) else: hist.append(run_time) |
