From 52f1cd4bc6023a74767e3123b5dbf32e685cbfc1 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Mon, 30 Jul 2018 01:02:25 +0100 Subject: [PATCH] argparse: work around bad default in py 3.7.0a/b/rc, fixes #3996 --- src/borg/testsuite/archiver.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/borg/testsuite/archiver.py b/src/borg/testsuite/archiver.py index 1effbc8ba..807841225 100644 --- a/src/borg/testsuite/archiver.py +++ b/src/borg/testsuite/archiver.py @@ -3669,7 +3669,13 @@ class TestCommonOptions: @pytest.fixture def subparsers(self, basic_parser): - return basic_parser.add_subparsers(title='required arguments', metavar='') + if sys.version_info >= (3, 7): + # py37 pre-release defaults to unwanted required=True, in 3.7.0+ it was fixed to =False + return basic_parser.add_subparsers(title='required arguments', metavar='', required=False) + else: + # py36 does not support required=... argument (but behaves like required=False). + # note: use below call for 3.6 and 3.7 when there are no alphas/betas/RCs of 3.7.0 around any more. + return basic_parser.add_subparsers(title='required arguments', metavar='') @pytest.fixture def parser(self, basic_parser):