Only use the default archive name suffix when the user specified no affix

Also add more archive name affix testing to the test suite.
This commit is contained in:
Nikolaus Schulz 2010-07-31 14:58:50 +02:00
parent b6bc92c34f
commit 67f23e1af4
2 changed files with 41 additions and 12 deletions

View File

@ -172,7 +172,8 @@ class StaleFiles:
class Options:
"""Class to store runtime options, including defaults"""
archive_prefix = None
archive_suffix = "_archive"
archive_suffix = None
archive_default_suffix = "_archive"
days_old_max = 180
date_old_max = None
delete_old_mail = False
@ -1636,10 +1637,13 @@ def make_archive_name(mailbox_name):
else:
tm = time.localtime(options.date_old_max)
prefix = suffix = ""
if options.archive_prefix:
prefix = time.strftime(options.archive_prefix, tm)
if options.archive_suffix:
suffix = time.strftime(options.archive_suffix, tm)
if options.archive_prefix is None and options.archive_suffix is None:
suffix = options.archive_default_suffix
else:
if options.archive_prefix:
prefix = time.strftime(options.archive_prefix, tm)
if options.archive_suffix:
suffix = time.strftime(options.archive_suffix, tm)
if re.match(r'imaps?://', mailbox_name.lower()):
archive_dir = ""
archive_base = mailbox_name.rsplit('/', 1)[-1]

View File

@ -897,7 +897,6 @@ class TestArchiveMboxPreserveUnread(unittest.TestCase):
class TestArchiveMboxSuffix(unittest.TestCase):
"""make sure the 'suffix' option works"""
def setUp(self):
self.old_suffix = archivemail.options.archive_suffix
archivemail.options.quiet = True
def testSuffix(self):
@ -915,14 +914,11 @@ class TestArchiveMboxSuffix(unittest.TestCase):
def tearDown(self):
archivemail.options.quiet = False
archivemail.options.archive_suffix = self.old_suffix
archivemail.options.archive_suffix = None
class TestArchiveMboxPrefix(unittest.TestCase):
"""make sure the 'prefix' option works"""
def setUp(self):
self.old_prefix = archivemail.options.archive_prefix
self.old_suffix = archivemail.options.archive_suffix
archivemail.options.archive_suffix = ""
archivemail.options.quiet = True
def testPrefix(self):
@ -940,8 +936,37 @@ class TestArchiveMboxPrefix(unittest.TestCase):
def tearDown(self):
archivemail.options.quiet = False
archivemail.options.archive_prefix = self.old_prefix
archivemail.options.archive_suffix = self.old_suffix
archivemail.options.archive_prefix = None
class TestArchiveAffixes(unittest.TestCase):
def setUp(self):
self.mbox = "harbsch"
self.archive_prefix = "wurbl+"
self.archive_suffix = "+schronk&borsz"
archivemail.options.quiet = True
def testDefaultPrefix(self):
"""if no archive name affix is specified, the default archive suffix is appended"""
self.assertEqual(archivemail.make_archive_name(self.mbox),
self.mbox + archivemail.options.archive_default_suffix)
def testPrefixKillsDefaultSuffix(self):
"""if an archive name prefix is specified, the default archive suffix is not appended"""
archivemail.options.archive_prefix = self.archive_prefix
self.assertEqual(archivemail.make_archive_name(self.mbox),
self.archive_prefix + self.mbox)
def testPrefixAndSuffix(self):
"""specifying both an archive name prefix and suffix works"""
archivemail.options.archive_prefix = self.archive_prefix
archivemail.options.archive_suffix = self.archive_suffix
self.assertEqual(archivemail.make_archive_name(self.mbox),
self.archive_prefix + self.mbox + self.archive_suffix)
def tearDown(self):
archivemail.options.archive_prefix = None
archivemail.options.archive_suffix = None
archivemail.options.quiet = False
class TestArchiveDryRun(TestArchive):
"""make sure the 'dry-run' option works"""