CallbackList now correctly uses objects, not classes
This commit is contained in:
parent
8facfff750
commit
a180835028
@ -37,11 +37,11 @@ class CallbackList(ArchiveCallback):
|
||||
def __init__(self, **kwargs):
|
||||
super(CallbackList, self).__init__(**kwargs)
|
||||
self.callbacks = []
|
||||
self.config = kwargs.get('config', {})
|
||||
callback_list_str = self.config.get('callback_list', "")
|
||||
callback_list = [x.strip() for x in callback_list_str.split(",")]
|
||||
self.callback_list = [simport.load(c) for c in callback_list]
|
||||
|
||||
self.config = kwargs
|
||||
callback_str = self.config.get('callback_list', "")
|
||||
callback_str_list = [x.strip() for x in callback_str.split(",")]
|
||||
self.callbacks = [simport.load(c)(**self.config)
|
||||
for c in callback_str_list]
|
||||
# TODO(Sandy): Need some exception handling around these.
|
||||
# The failure of one shouldn't stop processing.
|
||||
def on_open(self, filename):
|
||||
@ -53,7 +53,7 @@ class CallbackList(ArchiveCallback):
|
||||
c.on_close(filename)
|
||||
|
||||
|
||||
class ChangeExtensionCallback(object):
|
||||
class ChangeExtensionCallback(ArchiveCallback):
|
||||
"""filename.dat becomes filename.dat.done"""
|
||||
def __init__(self, **kwargs):
|
||||
super(ChangeExtensionCallback, self).__init__(**kwargs)
|
||||
@ -63,7 +63,7 @@ class ChangeExtensionCallback(object):
|
||||
os.rename(filename, "%s.%s" % (filename, self.new_extension))
|
||||
|
||||
|
||||
class MoveFileCallback(object):
|
||||
class MoveFileCallback(ArchiveCallback):
|
||||
def __init__(self, **kwargs):
|
||||
super(MoveFileCallback, self).__init__(**kwargs)
|
||||
self.destination_folder = kwargs.get('destination_folder', '.')
|
||||
|
@ -13,10 +13,15 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import datetime
|
||||
|
||||
import notification_utils
|
||||
|
||||
|
||||
class RollChecker(object):
|
||||
def __init__(self, **kwargs):
|
||||
pass
|
||||
|
||||
def start(self, archive):
|
||||
"""Called when a new archive is selected."""
|
||||
pass
|
||||
@ -32,8 +37,10 @@ class NeverRollChecker(RollChecker):
|
||||
|
||||
|
||||
class TimeRollChecker(RollChecker):
|
||||
def __init__(self, timedelta):
|
||||
self.timedelta = timedelta
|
||||
def __init__(self, **kwargs):
|
||||
super(TimeRollChecker, self).__init__()
|
||||
minutes = int(kwargs.get('roll_minutes', 60))
|
||||
self.timedelta = datetime.timedelta(minutes=minutes)
|
||||
|
||||
def start(self, archive):
|
||||
self.start_time = notification_utils.now()
|
||||
@ -44,9 +51,10 @@ class TimeRollChecker(RollChecker):
|
||||
|
||||
|
||||
class SizeRollChecker(RollChecker):
|
||||
def __init__(self, size_in_mb):
|
||||
self.size_in_mb = size_in_mb
|
||||
def __init__(self, **kwargs):
|
||||
super(SizeRollChecker, self).__init__()
|
||||
self.roll_size_mb = int(kwargs.get('roll_size_mb', 1))
|
||||
|
||||
def check(self, archive):
|
||||
size = archive.get_file_handle().tell()
|
||||
return (size / 1048576) >= self.size_in_mb
|
||||
return (size / 1048576) >= self.roll_size_mb
|
||||
|
@ -51,7 +51,7 @@ class TestSizeRolling(unittest.TestCase):
|
||||
def test_size_rolling(self):
|
||||
callback = ArchiveCallback()
|
||||
|
||||
checker = roll_checker.SizeRollChecker(1)
|
||||
checker = roll_checker.SizeRollChecker(roll_size_mb=1)
|
||||
manager = roll_manager.WritingRollManager("test_%Y_%m_%d_%X_%f.events",
|
||||
checker,
|
||||
TEMPDIR,
|
||||
|
@ -9,18 +9,18 @@ from shoebox import roll_checker
|
||||
|
||||
class TestRollChecker(unittest.TestCase):
|
||||
def test_time_roll_checker_start(self):
|
||||
one_hour = datetime.timedelta(hours=1)
|
||||
x = roll_checker.TimeRollChecker(one_hour)
|
||||
x = roll_checker.TimeRollChecker(roll_minutes=60)
|
||||
now = datetime.datetime.utcnow()
|
||||
with mock.patch.object(notification_utils, 'now') as dt:
|
||||
dt.return_value = now
|
||||
x.start(None)
|
||||
self.assertEqual(x.start_time, now)
|
||||
one_hour = datetime.timedelta(hours=1)
|
||||
self.assertEqual(x.end_time, now + one_hour)
|
||||
|
||||
def test_time_roll_checker_end(self):
|
||||
one_hour = datetime.timedelta(hours=1)
|
||||
x = roll_checker.TimeRollChecker(one_hour)
|
||||
x = roll_checker.TimeRollChecker(roll_minutes=60)
|
||||
now = datetime.datetime.utcnow()
|
||||
x.start_time = now
|
||||
x.end_time = now + one_hour
|
||||
@ -37,10 +37,9 @@ class TestRollChecker(unittest.TestCase):
|
||||
self.assertFalse(x.check(None))
|
||||
|
||||
def test_size_roll_checker_end(self):
|
||||
one_mb = 1048576
|
||||
x = roll_checker.SizeRollChecker(10)
|
||||
|
||||
x = roll_checker.SizeRollChecker(roll_size_mb=10)
|
||||
archive = mock.Mock()
|
||||
one_mb = 1048576
|
||||
archive.get_file_handle.return_value.tell.return_value = one_mb * 5
|
||||
self.assertFalse(x.check(archive))
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user