summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/check.scm16
-rw-r--r--gnu/packages/python-compression.scm12
-rw-r--r--gnu/packages/python-xyz.scm78
3 files changed, 96 insertions, 10 deletions
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index c28e488a14..941b4547b6 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -821,13 +821,13 @@ and many external plugins.")
   (package
     (inherit (strip-python2-variant python-pytest))
     (name "python2-pytest")
-    (version "4.4.2")
+    (version "4.6.9")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "pytest" version))
               (sha256
                (base32
-                "18w38kjnffdcrlbw6ny6dksgxai6x9bxpjs2m6klqmb8hfzjkcb2"))))
+                "0fgkmpc31nzy97fxfrkqbzycigdwxwwmninx3qhkzp81migggs0r"))))
     (build-system python-build-system)
     (arguments
      `(#:python ,python-2
@@ -836,11 +836,14 @@ and many external plugins.")
      `(("python-atomicwrites" ,python2-atomicwrites)
        ("python-attrs" ,python2-attrs-bootstrap)
        ("python-funcsigs" ,python2-funcsigs)
+       ("python-importlib-metadata" ,python2-importlib-metadata-bootstrap)
        ("python-more-itertools" ,python2-more-itertools)
+       ("python-packaging" ,python2-packaging-bootstrap)
        ("python-pathlib2" ,python2-pathlib2)
        ("python-pluggy" ,python2-pluggy)
        ("python-py" ,python2-py)
-       ("python-six" ,python2-six-bootstrap)))
+       ("python-six" ,python2-six-bootstrap)
+       ("python-wcwidth" ,python2-wcwidth)))
     (native-inputs
      `(("bash" ,bash)                   ;tests require 'compgen'
        ("python-hypothesis" ,python2-hypothesis)
@@ -871,10 +874,13 @@ and many external plugins.")
       `(("python-atomicwrites" ,python2-atomicwrites)
         ("python-attrs" ,python2-attrs-bootstrap)
         ("python-funcsigs" ,python2-funcsigs-bootstrap)
+        ("python-importlib-metadata" ,python2-importlib-metadata-bootstrap)
         ("python-more-itertools" ,python2-more-itertools)
+        ("python-packaging" ,python2-packaging-bootstrap)
         ("python-pathlib2" ,python2-pathlib2-bootstrap)
-        ("python-pluggy" ,python2-pluggy)
-        ("python-py" ,python2-py))))))
+        ("python-pluggy" ,python2-pluggy-bootstrap)
+        ("python-py" ,python2-py)
+        ("python-wcwidth" ,python2-wcwidth))))))
 
 (define-public python-pytest-cov
   (package
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index 70abc7bad1..7924479185 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -243,6 +244,17 @@ wrapper.  It provides a backport of the @code{Path} object.")
         ("python-unittest2" ,python2-unittest2)
         ,@(package-native-inputs base))))))
 
+;; This package is used to bootstrap pytest, via importlib-metadata.
+(define-public python2-zipp-bootstrap
+  (hidden-package
+   (package/inherit
+    python2-zipp
+    (arguments
+     `(#:tests? #f
+       ,@(package-arguments python2-zipp)))
+    (native-inputs
+     `(("python-setuptools-scm" ,python2-setuptools-scm))))))
+
 (define-public python-zstandard
   (package
     (name "python-zstandard")
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ea67be17ef..12faca73eb 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -5004,6 +5004,16 @@ older Python versions.")
 for older versions of Python.")
     (license license:asl2.0)))
 
+;; For importlib-metadata-bootstrap below.
+(define-public python2-importlib-resources-bootstrap
+  (hidden-package
+   (package/inherit
+    python2-importlib-resources
+    (name "python2-importlib-resources-bootstrap")
+    (propagated-inputs
+     `(("python-pathlib2-bootstrap" ,python2-pathlib2-bootstrap)
+       ("python-typing" ,python2-typing))))))
+
 (define-public python-importlib-metadata
   (package
     (name "python-importlib-metadata")
@@ -5019,7 +5029,7 @@ for older versions of Python.")
      `(("python-zipp" ,python-zipp)))
     (native-inputs
      `(("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-packaging" ,python-packaging)))
+       ("python-packaging" ,python-packaging-bootstrap)))
     (home-page "https://importlib-metadata.readthedocs.io/")
     (synopsis "Read metadata from Python packages")
     (description
@@ -5045,6 +5055,22 @@ need to use the older and less efficient @code{pkg_resources} package.")
         ("python-pathlib2" ,python2-pathlib2)
         ,@(package-propagated-inputs base))))))
 
+;; This package is used by python2-pytest, and thus must not depend on it.
+(define-public python2-importlib-metadata-bootstrap
+  (hidden-package
+   (package/inherit
+    python2-importlib-metadata
+    (name "python2-importlib-metadata-bootstrap")
+    (arguments
+     `(#:tests? #f
+       ,@(package-arguments python2-importlib-metadata)))
+    (propagated-inputs
+     `(("python-zipp" ,python2-zipp-bootstrap)
+       ("python-pathlib2" ,python2-pathlib2-bootstrap)
+       ("python-configparser" ,python2-configparser)
+       ("python-contextlib2" ,python2-contextlib2-bootstrap)
+       ("python-importlib-resources" ,python2-importlib-resources-bootstrap))))))
+
 (define-public python-jaraco-packaging
   (package
     (name "python-jaraco-packaging")
@@ -8288,6 +8314,18 @@ the standard library.")
       (native-inputs
        `(("python2-unittest2" ,python2-unittest2))))))
 
+;; This package is used by python2-pytest via python2-importlib-metadata,
+;; and thus can not depend on python-unittest2 (which depends on pytest).
+(define-public python2-contextlib2-bootstrap
+  (hidden-package
+   (package/inherit
+    python2-contextlib2
+    (name "python2-contextlib2-bootstrap")
+    (arguments
+     `(#:tests? #f
+       ,@(package-arguments python2-contextlib2)))
+    (native-inputs '()))))
+
 (define-public python-texttable
   (package
     (name "python-texttable")
@@ -8786,6 +8824,20 @@ Pytest but stripped of Pytest specific details.")
      (propagated-inputs
       `(("python-importlib-metadata" ,python2-importlib-metadata))))))
 
+;; This package requires python2-importlib-metadata, but that package
+;; ends up needing python2-pluggy via python2-pytest, so we need this
+;; variant to solve the circular dependency.
+(define-public python2-pluggy-bootstrap
+  (hidden-package
+   (package/inherit
+    python2-pluggy
+    (name "python2-pluggy-bootstrap")
+    (arguments
+     `(#:tests? #f
+       ,@(package-arguments python2-pluggy)))
+    (propagated-inputs
+     `(("python-importlib-metadata" ,python2-importlib-metadata-bootstrap))))))
+
 (define-public python-tox
   (package
    (name "python-tox")
@@ -13107,7 +13159,11 @@ several utilities, as well as an API for building localization tools.")
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (replace 'check
-                    (lambda _ (invoke "py.test" "-vv"))))))
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (if tests?
+                          (invoke "py.test" "-vv")
+                          (format #t "test suite not run~%"))
+                      #t)))))
     (native-inputs
      `(("python-pretend" ,python-pretend)
        ("python-pytest" ,python-pytest)))
@@ -13125,7 +13181,10 @@ information.")
     ;; licenses.
     (license (list license:asl2.0 license:bsd-2))))
 
-;; A variant with minimal dependencies, for bootstrapping Pytest.
+(define-public python2-packaging
+  (package-with-python2 python-packaging))
+
+;; Variants with minimal dependencies, for bootstrapping Pytest.
 (define-public python-packaging-bootstrap
   (hidden-package
    (package/inherit
@@ -13136,8 +13195,17 @@ information.")
      `(("python-pyparsing" ,python-pyparsing)))
     (arguments '(#:tests? #f)))))
 
-(define-public python2-packaging
-  (package-with-python2 python-packaging))
+(define-public python2-packaging-bootstrap
+  (hidden-package
+   (package/inherit
+    python2-packaging
+    (name "python2-packaging-bootstrap")
+    (native-inputs '())
+    (propagated-inputs
+     `(("python-pyparsing" ,python2-pyparsing)))
+    (arguments
+     `(#:tests? #f
+       ,@(package-arguments python2-packaging))))))
 
 (define-public python-relatorio
   (package