aboutsummaryrefslogtreecommitdiffstats
path: root/test_archivemail.py
diff options
context:
space:
mode:
authorPaul Rodger <paul@paulrodger.com>2002-04-29 12:20:45 +0000
committerPaul Rodger <paul@paulrodger.com>2002-04-29 12:20:45 +0000
commitdcff0c0c85a06f20cbff5af5b327dade05ac3cce (patch)
treeea7cbe6c852eb7345ca8af69d7cf7568eb83b055 /test_archivemail.py
parent244c88d4b971df01d8209ede98a05f4ebb3495ea (diff)
downloadarchivemail-dcff0c0c85a06f20cbff5af5b327dade05ac3cce.tar.gz
archivemail-dcff0c0c85a06f20cbff5af5b327dade05ac3cce.tar.bz2
archivemail-dcff0c0c85a06f20cbff5af5b327dade05ac3cce.zip
Added a --size option to only archive messages over a certain byte size.
Diffstat (limited to 'test_archivemail.py')
-rwxr-xr-xtest_archivemail.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/test_archivemail.py b/test_archivemail.py
index 3f7119e..18d6f4f 100755
--- a/test_archivemail.py
+++ b/test_archivemail.py
@@ -1216,6 +1216,75 @@ class TestArchiveMboxUncompressed(unittest.TestCase):
os.remove(name)
+class TestArchiveSize(unittest.TestCase):
+ """check that the 'size' argument works"""
+ def testSmaller(self):
+ """giving a size argument smaller than the message"""
+ for execute in ("package", "system_long", "system_short"):
+ self.mbox_name = make_mbox(messages=1, hours_old=(24 * 181))
+ size_arg = os.path.getsize(self.mbox_name) - 1
+ self.copy_name = tempfile.mktemp()
+ shutil.copyfile(self.mbox_name, self.copy_name)
+ if execute == "package":
+ archivemail.options.quiet = 1
+ archivemail.options.min_size = size_arg
+ archivemail.archive(self.mbox_name)
+ elif execute == "system_long":
+ run = "./archivemail.py --size=%d --quiet %s" % \
+ (size_arg, self.mbox_name)
+ self.assertEqual(os.system(run), 0)
+ elif execute == "system_short":
+ run = "./archivemail.py -S%d --quiet %s" % \
+ (size_arg, self.mbox_name)
+ self.assertEqual(os.system(run), 0)
+ else:
+ sys.exit(1)
+ assert(os.path.exists(self.mbox_name))
+ self.assertEqual(os.path.getsize(self.mbox_name), 0)
+ archive_name = self.mbox_name + "_archive.gz"
+ assert(os.path.exists(archive_name))
+ self.assertEqual(os.system("gzip -d %s" % archive_name), 0)
+ archive_name = self.mbox_name + "_archive"
+ assert(os.path.exists(archive_name))
+ assert(filecmp.cmp(archive_name, self.copy_name, shallow=0))
+ self.tearDown()
+
+ def testBigger(self):
+ """giving a size argument bigger than the message"""
+ for execute in ("package", "system_long", "system_short"):
+ self.mbox_name = make_mbox(messages=1, hours_old=(24 * 181))
+ size_arg = os.path.getsize(self.mbox_name) + 1
+ self.copy_name = tempfile.mktemp()
+ shutil.copyfile(self.mbox_name, self.copy_name)
+ if execute == "package":
+ archivemail.options.quiet = 1
+ archivemail.options.min_size = size_arg
+ archivemail.archive(self.mbox_name)
+ elif execute == "system_long":
+ run = "./archivemail.py --size=%d --quiet %s" % \
+ (size_arg, self.mbox_name)
+ self.assertEqual(os.system(run), 0)
+ elif execute == "system_short":
+ run = "./archivemail.py -S%d --quiet %s" % \
+ (size_arg, self.mbox_name)
+ self.assertEqual(os.system(run), 0)
+ else:
+ sys.exit(1)
+ assert(os.path.exists(self.mbox_name))
+ assert(filecmp.cmp(self.mbox_name, self.copy_name, shallow=0))
+ archive_name = self.mbox_name + "_archive.gz"
+ assert(not os.path.exists(archive_name))
+ self.tearDown()
+
+ def tearDown(self):
+ archivemail.options.quiet = 0
+ archivemail.options.min_size = None
+ archive = self.mbox_name + "_archive"
+ for name in (self.mbox_name, self.copy_name, archive, archive + ".gz"):
+ if name and os.path.exists(name):
+ os.remove(name)
+
+
class TestArchiveMboxMode(unittest.TestCase):
"""file mode (permissions) of the original mbox should be preserved"""
def testOld(self):