more tests

This commit is contained in:
Sandy Walsh 2014-01-13 19:58:44 +00:00
parent cf27ef257b
commit 4c0e33229a
2 changed files with 32 additions and 13 deletions

View File

@ -90,8 +90,8 @@ class RollManager(object):
self.active_archive = None
def _make_filename(self):
now = now()
return now.strftime(self.filename_template)
f = now().strftime(self.filename_template)
return f.replace(" ", "_")
def get_active_archive(self):
if not self.active_archive:
@ -110,9 +110,9 @@ class RollManager(object):
class ReadingRollManager(RollManager):
def __init__(self, filename_template, roll_checker):
def __init__(self, filename_template, roll_checker, directory="."):
super(ReadingRollManager, self).__init__(filename_template,
roll_checker)
roll_checker, directory)
self.archive_class = ArchiveReader
def read_block(self):
@ -126,9 +126,9 @@ class ReadingRollManager(RollManager):
class WritingRollManager(RollManager):
def __init__(self, filename_template, roll_checker):
super(ReadingRollManager, self).__init__(filename_template,
roll_checker)
def __init__(self, filename_template, roll_checker, directory="."):
super(WritingRollManager, self).__init__(filename_template,
roll_checker, directory)
self.archive_class = ArchiveWriter
def write(self, payload):
@ -139,18 +139,19 @@ class WritingRollManager(RollManager):
class Archive(object):
def __init__(self):
def __init__(self, filename):
self._handle = None
self.filename = filename
def get_file_handle(self):
return self._handle
class ArchiveWriter(object):
class ArchiveWriter(Archive):
"""The active Archive for appending.
"""
def __init__(self, filename):
super(ArchiveWriter, self).__init__(self)
super(ArchiveWriter, self).__init__(filename)
self._handle = open(filename, "wb+")
def write(self, payload):
@ -158,11 +159,11 @@ class ArchiveWriter(object):
class ArchiveReader(object):
class ArchiveReader(Archive):
"""The active Archive for consuming.
"""
def __init__(self, filename):
pass
super(ArchiveReader, self).__init__(filename)
def read_block(self):
pass

View File

@ -50,4 +50,22 @@ class TestRollChecker(unittest.TestCase):
class TestRollManager(unittest.TestCase):
pass # Next ...
def test_make_filename(self):
filename_template = "filename_%c"
now = datetime.datetime(day=1, month=2, year=2014,
hour=10, minute=11, second=12)
x = shoebox.RollManager("filename_%c.dat", None)
with mock.patch.object(shoebox, "now") as dt:
dt.return_value = now
filename = x._make_filename()
self.assertEqual(filename, "filename_Sat_Feb__1_10:11:12_2014.dat")
class TestWritingRollManager(unittest.TestCase):
def test_get_active_archive(self):
roll_checker = mock.Mock()
filename_template = "filename_%c.dat"
x = shoebox.WritingRollManager(filename_template, roll_checker)
archive = x.get_active_archive()
self.assertTrue(isinstance(archive, shoebox.ArchiveWriter))
self.assertTrue(roll_checker.start.called)