From 52f1cd4bc6023a74767e3123b5dbf32e685cbfc1 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Mon, 30 Jul 2018 01:02:25 +0100 Subject: [PATCH 1/2] 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): From fef9581690dd49f9d812a8841955fcdb5fd6ba71 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Mon, 30 Jul 2018 01:06:15 +0100 Subject: [PATCH 2/2] tox / travis: enable testing on py37 --- .travis.yml | 4 ++++ tox.ini | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c3936d76c..fb9a4caa5 100644 --- a/.travis.yml +++ b/.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 diff --git a/tox.ini b/tox.ini index 2f888ef8d..dc09fac0d 100644 --- a/tox.ini +++ b/tox.ini @@ -2,7 +2,7 @@ # fakeroot -u tox --recreate [tox] -envlist = py{36},flake8 +envlist = py{36,37},flake8 [testenv] deps =