Bladeren bron

--progress option was backwards

adds unit tests and ensures we detect --progress correctly in all cases
Antoine Beaupré 9 jaren geleden
bovenliggende
commit
a40729f4f3
2 gewijzigde bestanden met toevoegingen van 23 en 1 verwijderingen
  1. 1 1
      borg/archiver.py
  2. 22 0
      borg/testsuite/archiver.py

+ 1 - 1
borg/archiver.py

@@ -775,7 +775,7 @@ class Archiver:
             """
             def __call__(self, parser, ns, values, option):
                 """set the given flag to true unless ``--no`` is passed"""
-                setattr(ns, self.dest, option.startswith('--no-'))
+                setattr(ns, self.dest, not option.startswith('--no-'))
 
         subparser = subparsers.add_parser('create', parents=[common_parser],
                                           description=self.do_create.__doc__,

+ 22 - 0
borg/testsuite/archiver.py

@@ -669,6 +669,28 @@ class ArchiverTestCase(ArchiverTestCaseBase):
         manifest, key = Manifest.load(repository)
         self.assert_equal(len(manifest.archives), 0)
 
+    def test_progress(self):
+        self.create_regular_file('file1', size=1024 * 80)
+        self.cmd('init', self.repository_location)
+        # without a terminal, no progress expected
+        output = self.cmd('create', self.repository_location + '::test1', 'input', fork=False)
+        self.assert_not_in("\r", output)
+        # with a terminal, progress expected
+        output = self.cmd('create', self.repository_location + '::test2', 'input', fork=True)
+        self.assert_in("\r", output)
+        # without a terminal, progress forced on
+        output = self.cmd('create', '--progress', self.repository_location + '::test3', 'input', fork=False)
+        self.assert_in("\r", output)
+        # with a terminal, progress forced on
+        output = self.cmd('create', '--progress', self.repository_location + '::test4', 'input', fork=True)
+        self.assert_in("\r", output)
+        # without a termainl, progress forced off
+        output = self.cmd('create', '--no-progress', self.repository_location + '::test5', 'input', fork=False)
+        self.assert_not_in("\r", output)
+        # with a termainl, progress forced off
+        output = self.cmd('create', '--no-progress', self.repository_location + '::test6', 'input', fork=True)
+        self.assert_not_in("\r", output)
+
     def test_cmdline_compatibility(self):
         self.create_regular_file('file1', size=1024 * 80)
         self.cmd('init', self.repository_location)