From 8ba2b14eb5fba297fbe284a66e6a731275e9e327 Mon Sep 17 00:00:00 2001 From: Christian Herdtweck Date: Thu, 14 Jan 2016 15:01:39 +0100 Subject: [PATCH] new test, new bugs found... --- test_helpers.py | 32 +++++++++----------------------- 1 files changed, 9 insertions(+), 23 deletions(-) diff --git a/test_helpers.py b/test_helpers.py index 7d7072f..69a0982 100644 --- a/test_helpers.py +++ b/test_helpers.py @@ -8,12 +8,10 @@ tests from __future__ import print_function -import contextlib +from contextlib import contextmanager from threading import Thread from time import sleep -from file_helpers import get_filesystem_fill_states, FilesystemFillState from datetime import datetime as dt -from buffers import LogarithmicBuffer from itertools import tee from warnings import warn from sys import stderr, exit as sys_exit @@ -27,10 +25,14 @@ except ImportError: # only added in python 3.2 WARN_BASE_CLASS = UserWarning +from buffers import LogarithmicBuffer +from file_helpers import get_filesystem_fill_states, FilesystemFillState +from iter_helpers import pairwise + #: filesystems shown by df that usually do not correspond to something on disc #: (except maybe swap) -NOT_REAL_FILESYSTEMS = 'none', 'shmfs', 'procfs', 'tmpfs' +NOT_REAL_FILESYSTEMS = 'none', 'shmfs', 'procfs', 'tmpfs', 'ramfs' class DiscFullPreventionError(Exception): @@ -127,9 +129,9 @@ class DiscFillChecker: # call user-defined function to decide min_time = None - if any(time > 0 for time in times_until_empty): + if any(time != None and time > 0 for time in times_until_empty): min_time = min(time for time in times_until_empty - if time>0) + if time != None and time>0) avg_time = calc_time_until_zero(fill_states[0], fill_states[-1]) self.decision_function(fs_state, @@ -226,12 +228,6 @@ def default_disc_full_decision_function(curr_state, Values should be one like :py:data:`KILL_EXCEPTION` """ - if curr_state.name == '/dev/mapper/ssd2-local': - print('checking ssd2: free is {0:.1f}MB, warn at {1:.1f}MB, err at {2:.1f}MB' - .format(float(curr_state.available) / MEGABYTE, - float(size_warn) / MEGABYTE, - float(size_err) / MEGABYTE)) - # err? raise_err = False if curr_state.available < size_err: @@ -295,21 +291,11 @@ def calc_time_until_zero(old_state, new_state): return (new_date - dt.now()).total_seconds() - time_diff -def pairwise(iterable): - """ s -> (s0,s1), (s1,s2), (s2, s3), ... - - taken from itertool recipes in python api doc of itertools - """ - a, b = tee(iterable) - next(b, None) - return zip(a, b) - - METHOD_THREAD = 'thread' METHOD_ALARM = 'alarm' -@contextlib.contextmanager +@contextmanager def disc_fill_checked(method=METHOD_THREAD, *args, **kwargs): """ run test function while watching disc space -- 1.7.1