Bläddra i källkod

Merge pull request #4001 from ThomasWaldmann/py37

argparse fix for py37, enable py37 testing
TW 6 år sedan
förälder
incheckning
87d48d7748
3 ändrade filer med 12 tillägg och 2 borttagningar
  1. 4 0
      .travis.yml
  2. 7 1
      src/borg/testsuite/archiver.py
  3. 1 1
      tox.ini

+ 4 - 0
.travis.yml

@@ -20,6 +20,10 @@ matrix:
           os: linux
           dist: trusty
           env: TOXENV=py36
+        - python: "3.7"
+          os: linux
+          dist: xenial
+          env: TOXENV=py37
         - language: generic
           os: osx
           osx_image: xcode8.3

+ 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):

+ 1 - 1
tox.ini

@@ -2,7 +2,7 @@
 # fakeroot -u tox --recreate
 
 [tox]
-envlist = py{36},flake8
+envlist = py{36,37},flake8
 
 [testenv]
 deps =