diff options
| author | Nikolaus Schulz <microschulz@web.de> | 2010-07-31 14:58:50 +0200 | 
|---|---|---|
| committer | Nikolaus Schulz <microschulz@web.de> | 2010-07-31 20:49:29 +0200 | 
| commit | 67f23e1af4a9adc43aea08790c4d3b349c75297d (patch) | |
| tree | a464c426c6fd5586935beac56341d8e307035f0e | |
| parent | b6bc92c34f255054a7fd2128a024a5ae26cd1026 (diff) | |
| download | archivemail-67f23e1af4a9adc43aea08790c4d3b349c75297d.tar.gz archivemail-67f23e1af4a9adc43aea08790c4d3b349c75297d.tar.bz2 archivemail-67f23e1af4a9adc43aea08790c4d3b349c75297d.zip | |
Only use the default archive name suffix when the user specified no affix
Also add more archive name affix testing to the test suite.
| -rwxr-xr-x | archivemail | 14 | ||||
| -rwxr-xr-x | test_archivemail | 39 | 
2 files changed, 41 insertions, 12 deletions
| diff --git a/archivemail b/archivemail index 0ace88a..2ca862f 100755 --- a/archivemail +++ b/archivemail @@ -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] diff --git a/test_archivemail b/test_archivemail index 406a3b4..3bc278a 100755 --- a/test_archivemail +++ b/test_archivemail @@ -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""" | 
