diff --git a/borg/archiver.py b/borg/archiver.py index 12de588ea..479d5a854 100644 --- a/borg/archiver.py +++ b/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__, diff --git a/borg/testsuite/archiver.py b/borg/testsuite/archiver.py index d61834d99..48b9da0cb 100644 --- a/borg/testsuite/archiver.py +++ b/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)