From 0ae97f5dd1c6cc2ad8e9f27f62e5a72e0d5fbb4c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 16 Jan 2020 00:45:53 +0100 Subject: gnu: python2-pytest: Update to 4.6.9. * gnu/packages/check.scm (python2-pytest): Update to 4.6.9. (python2-pytest-bootstrap)[propagated-inputs]: Add PYTHON2-IMPORTLIB-METADATA-BOOTSTRAP, PYTHON2-PACKAGING-BOOTSTRAP, and PYTHON2-WCWIDTH. Replace PYTHON2-PLUGGY with PYTHON2-PLUGGY-BOOTSTRAP. * gnu/packages/python-compression.scm (python2-zipp-bootstrap): New public variable. * gnu/packages/python-xyz.scm (python2-importlib-resources-bootstrap): New public variable. (python-importlib-metadata)[native-inputs]: Change from PYTHON-PACKAGING to PYTHON-PACKAGING-BOOTSTRAP. [properties]: New field. (python2-importlib-metadata-bootstrap, python2-contextlib2-bootstrap, python2-pluggy-bootstrap): New public variables. (python-packaging)[arguments]: Allow overriding #:tests?. (python2-packaging-bootstrap): New public variable. --- gnu/packages/check.scm | 16 +++++--- gnu/packages/python-compression.scm | 12 ++++++ gnu/packages/python-xyz.scm | 78 ++++++++++++++++++++++++++++++++++--- 3 files changed, 96 insertions(+), 10 deletions(-) (limited to 'gnu') 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 ;;; Copyright © 2018, 2019 Efraim Flashner ;;; Copyright © 2020 Nicolas Goaziou +;;; Copyright © 2020 Marius Bakke ;;; ;;; 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 -- cgit v1.2.3