Browse Source

argparse: work around bad default in py 3.7.0a/b/rc, fixes #3996

Thomas Waldmann 6 năm trước cách đây
mục cha
commit
52f1cd4bc6
1 tập tin đã thay đổi với 7 bổ sung1 xóa
  1. 7 1
      src/borg/testsuite/archiver.py

+ 7 - 1
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='<command>')
+        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='<command>', 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='<command>')
 
     @pytest.fixture
     def parser(self, basic_parser):