* gnu/packages/python-check.scm (python-pytest-toolbox): New variable. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
1002 lines
37 KiB
Scheme
1002 lines
37 KiB
Scheme
;;; GNU Guix --- Functional package management for GNU
|
|
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
|
|
;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
|
;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
|
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
|
;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
|
;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
|
|
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
|
;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
|
|
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
|
|
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
|
|
;;;
|
|
;;; This file is part of GNU Guix.
|
|
;;;
|
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
|
;;; under the terms of the GNU General Public License as published by
|
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
|
;;; your option) any later version.
|
|
;;;
|
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
;;; GNU General Public License for more details.
|
|
;;;
|
|
;;; You should have received a copy of the GNU General Public License
|
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
(define-module (gnu packages python-check)
|
|
#:use-module (gnu packages)
|
|
#:use-module (gnu packages check)
|
|
#:use-module (gnu packages python-web)
|
|
#:use-module (gnu packages python-xyz)
|
|
#:use-module (gnu packages web)
|
|
#:use-module (gnu packages xml)
|
|
#:use-module (guix utils)
|
|
#:use-module ((guix licenses) #:prefix license:)
|
|
#:use-module (guix packages)
|
|
#:use-module (guix git-download)
|
|
#:use-module (guix download)
|
|
#:use-module (guix build-system python))
|
|
|
|
(define-public python-coveralls
|
|
(package
|
|
(name "python-coveralls")
|
|
(version "1.11.1")
|
|
(home-page "https://github.com/coveralls-clients/coveralls-python")
|
|
(source
|
|
(origin
|
|
;; The PyPI release lacks tests, so we pull from git instead.
|
|
(method git-fetch)
|
|
(uri (git-reference (url home-page) (commit version)))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"1zr1lqdjcfwj6wcx2449mzzjq8bbhwnqcm5vdif5s8hlz35bjxkp"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
'(#:phases (modify-phases %standard-phases
|
|
(add-before 'check 'disable-git-test
|
|
(lambda _
|
|
;; Remove test that requires 'git' and the full checkout.
|
|
(delete-file "tests/git_test.py")
|
|
#t))
|
|
(replace 'check
|
|
(lambda* (#:key tests? #:allow-other-keys)
|
|
(if tests?
|
|
(invoke "pytest" "-vv")
|
|
(format #t "test suite not run~%"))
|
|
#t)))))
|
|
(propagated-inputs
|
|
`(("python-coverage" ,python-coverage)
|
|
("python-docopt" ,python-docopt)
|
|
("python-pyyaml" ,python-pyyaml)
|
|
("python-requests" ,python-requests)))
|
|
(native-inputs
|
|
`(("python-mock" ,python-mock)
|
|
("python-pytest" ,python-pytest)))
|
|
(synopsis "Show coverage stats online via coveralls.io")
|
|
(description
|
|
"Coveralls.io is a service for publishing code coverage statistics online.
|
|
This package provides seamless integration with coverage.py (and thus pytest,
|
|
nosetests, etc...) in Python projects.")
|
|
(license license:expat)))
|
|
|
|
(define-public python-vcrpy
|
|
(package
|
|
(name "python-vcrpy")
|
|
(version "2.0.1")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "vcrpy" version))
|
|
(sha256
|
|
(base32
|
|
"0kws7l3hci1dvjv01nxw3805q9v2mwldw58bgl8s90wqism69gjp"))))
|
|
(build-system python-build-system)
|
|
(arguments `(#:tests? #f)) ; tests require more packages for python-pytest-httpbin
|
|
(propagated-inputs
|
|
`(("python-pyyaml" ,python-pyyaml)
|
|
("python-six" ,python-six)
|
|
("python-wrapt" ,python-wrapt)
|
|
("python-yarl" ,python-yarl)))
|
|
(native-inputs
|
|
`(("python-mock" ,python-mock)
|
|
("python-pytest" ,python-pytest)
|
|
("python-pytest-httpbin" ,python-pytest-httpbin)))
|
|
(home-page "https://github.com/kevin1024/vcrpy")
|
|
(synopsis "Automatically mock your HTTP interactions")
|
|
(description
|
|
"VCR.py simplifies and speeds up tests that make HTTP requests. The first
|
|
time you run code that is inside a VCR.py context manager or decorated function,
|
|
VCR.py records all HTTP interactions that take place through the libraries it
|
|
supports and serializes and writes them to a flat file (in yaml format by
|
|
default). This flat file is called a cassette. When the relevant piece of code
|
|
is executed again, VCR.py will read the serialized requests and responses from
|
|
the aforementioned cassette file, and intercept any HTTP requests that it
|
|
recognizes from the original test run and return the responses that corresponded
|
|
to those requests. This means that the requests will not actually result in
|
|
HTTP traffic, which confers several benefits including:
|
|
@enumerate
|
|
@item The ability to work offline
|
|
@item Completely deterministic tests
|
|
@item Increased test execution speed
|
|
@end enumerate
|
|
If the server you are testing against ever changes its API, all you need to do
|
|
is delete your existing cassette files, and run your tests again. VCR.py will
|
|
detect the absence of a cassette file and once again record all HTTP
|
|
interactions, which will update them to correspond to the new API.")
|
|
(license license:expat)))
|
|
|
|
(define-public python-pytest-ordering
|
|
(package
|
|
(name "python-pytest-ordering")
|
|
(version "0.6")
|
|
(source
|
|
(origin
|
|
;; No tests in the PyPI tarball.
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/ftobia/pytest-ordering")
|
|
(commit version)))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32 "14msj5gyqza0gk3x7h1ivmjrwza82v84cj7jx3ks0fw9lpin7pjq"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
'(#:phases
|
|
(modify-phases %standard-phases
|
|
(replace 'check
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
(add-installed-pythonpath inputs outputs)
|
|
(invoke "pytest" "-vv" "-k"
|
|
;; This test fails because of a type mismatch of an
|
|
;; argument passed to @code{pytest.main}.
|
|
"not test_run_marker_registered"))))))
|
|
(native-inputs
|
|
`(("python-pytest" ,python-pytest)))
|
|
(home-page "https://github.com/ftobia/pytest-ordering")
|
|
(synopsis "Pytest plugin to run your tests in a specific order")
|
|
(description
|
|
"This plugin defines Pytest markers to ensure that some tests, or groups
|
|
of tests run in a specific order.")
|
|
(license license:expat)))
|
|
|
|
(define-public python-pytest-arraydiff
|
|
(package
|
|
(name "python-pytest-arraydiff")
|
|
(version "0.3")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-arraydiff" version))
|
|
(sha256
|
|
(base32 "05bcvhh2ycxa35znl8b3l9vkcmx7vwm5c3fpakbpw46c7vsn4bfy"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
;; Tests require python-astropy, which itself requires this package.
|
|
;; Disable tests to avoid the circular dependency problem.
|
|
'(#:tests? #f))
|
|
(propagated-inputs
|
|
`(("python-numpy" ,python-numpy)
|
|
("python-six" ,python-six)))
|
|
(home-page "https://github.com/astropy/pytest-arraydiff")
|
|
(synopsis "Pytest plugin to help with comparing array output from tests")
|
|
(description
|
|
"This is a py.test plugin to facilitate the generation and comparison of
|
|
data arrays produced during tests, in particular in cases where the arrays
|
|
are too large to conveniently hard-code them in the tests.")
|
|
(license license:bsd-3)))
|
|
|
|
(define-public python-pytest-doctestplus
|
|
(package
|
|
(name "python-pytest-doctestplus")
|
|
(version "0.7.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-doctestplus" version))
|
|
(sha256
|
|
(base32 "1ai9kvd7xbq2jg2h8gmkb8lqzyrxvdh4zg3vxndg149iwd1hyi7d"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
'(#:phases
|
|
(modify-phases %standard-phases
|
|
(replace 'check
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
;; Make the installed plugin discoverable by Pytest.
|
|
(add-installed-pythonpath inputs outputs)
|
|
(invoke "pytest" "-vv"))))))
|
|
(native-inputs
|
|
`(("python-pytest" ,python-pytest)))
|
|
(home-page "https://github.com/astropy/pytest-doctestplus")
|
|
(synopsis "Pytest plugin with advanced doctest features")
|
|
(description
|
|
"This package contains a plugin for the Pytest framework that provides
|
|
advanced doctest support and enables the testing of reStructuredText files.")
|
|
(license license:bsd-3)))
|
|
|
|
(define-public python-pytest-filter-subpackage
|
|
(package
|
|
(name "python-pytest-filter-subpackage")
|
|
(version "0.1.1")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-filter-subpackage" version))
|
|
(sha256
|
|
(base32 "1s4s2kd31yc65rfvl4xhy8xx806xhy59kc7668h6b6wq88xgrn5p"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
'(;; One test is failing. There's an issue reported upstream. See
|
|
;; https://github.com/astropy/pytest-filter-subpackage/issues/3.
|
|
;; Disable it for now.
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(replace 'check
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
;; Make the installed plugin discoverable by Pytest.
|
|
(add-installed-pythonpath inputs outputs)
|
|
(invoke "pytest" "-vv" "-k" "not test_with_rst"))))))
|
|
(native-inputs
|
|
`(("python-pytest" ,python-pytest)
|
|
("python-pytest-cov" ,python-pytest-cov)
|
|
("python-pytest-doctestplus"
|
|
,python-pytest-doctestplus)))
|
|
(home-page "https://github.com/astropy/pytest-filter-subpackage")
|
|
(synopsis "Pytest plugin for filtering based on sub-packages")
|
|
(description
|
|
"This package contains a simple plugin for the pytest framework that
|
|
provides a shortcut to testing all code and documentation for a given
|
|
sub-package.")
|
|
(license license:bsd-3)))
|
|
|
|
(define-public python-pytest-openfiles
|
|
(package
|
|
(name "python-pytest-openfiles")
|
|
(version "0.5.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-openfiles" version))
|
|
(sha256
|
|
(base32 "0n0a7fdc9m86360y96l23fvdmd6rw04bl6h5xqgl9qxfv08jk70p"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
'(#:phases
|
|
(modify-phases %standard-phases
|
|
(replace 'check
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
;; Make the installed plugin discoverable by Pytest.
|
|
(add-installed-pythonpath inputs outputs)
|
|
(invoke "pytest" "-vv"))))))
|
|
(native-inputs
|
|
`(("python-setuptools-scm" ,python-setuptools-scm)
|
|
("python-pytest" ,python-pytest)))
|
|
(propagated-inputs
|
|
`(("python-psutil" ,python-psutil)))
|
|
(home-page "https://github.com/astropy/pytest-openfiles")
|
|
(synopsis "Pytest plugin for detecting inadvertent open file handles")
|
|
(description
|
|
"This package provides a plugin for the pytest framework that allows
|
|
developers to detect whether any file handles or other file-like objects
|
|
were inadvertently left open at the end of a unit test.")
|
|
(license license:bsd-3)))
|
|
|
|
(define-public python-pytest-remotedata
|
|
(package
|
|
(name "python-pytest-remotedata")
|
|
(version "0.3.2")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-remotedata" version))
|
|
(sha256
|
|
(base32 "1h6g6shib6z07azf12rnsa053470ggbd7hy3bnbw8nf3nza5h372"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
'(#:phases
|
|
(modify-phases %standard-phases
|
|
(replace 'check
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
;; Make the installed plugin discoverable by Pytest.
|
|
(add-installed-pythonpath inputs outputs)
|
|
(invoke "pytest" "-vv" "-k"
|
|
(string-append
|
|
;; These tests require internet access. Disable them.
|
|
"not test_default_behavior"
|
|
" and not test_strict_with_decorator")))))))
|
|
(native-inputs
|
|
`(("python-pytest" ,python-pytest)))
|
|
(propagated-inputs
|
|
`(("python-six" ,python-six)))
|
|
(home-page "https://github.com/astropy/pytest-remotedata")
|
|
(synopsis "Pytest plugin for controlling remote data access")
|
|
(description
|
|
"This package provides a plugin for the Pytest framework that allows
|
|
developers to control unit tests that require access to data from the
|
|
internet.")
|
|
(license license:bsd-3)))
|
|
|
|
(define-public python-pytest-mpl
|
|
(package
|
|
(name "python-pytest-mpl")
|
|
(version "0.11")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-mpl" version))
|
|
(sha256
|
|
(base32 "1km202c1s5kcn52fx0266p06qb34va3warcby594dh6vixxa9i96"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
'(#:phases
|
|
(modify-phases %standard-phases
|
|
(replace 'check
|
|
(lambda _
|
|
(invoke "pytest" "-vv"))))))
|
|
(native-inputs
|
|
`(("python-pytest" ,python-pytest)))
|
|
(propagated-inputs
|
|
`(("python-matplotlib" ,python-matplotlib)
|
|
("python-pillow" ,python-pillow)))
|
|
(home-page "https://github.com/matplotlib/pytest-mpl")
|
|
(synopsis "Pytest plugin to help with testing figures output from Matplotlib")
|
|
(description
|
|
"This is a plugin to facilitate image comparison for Matplotlib figures
|
|
in Pytest.")
|
|
(license license:bsd-3)))
|
|
|
|
(define-public python-covdefaults
|
|
(package
|
|
(name "python-covdefaults")
|
|
(version "1.1.0")
|
|
(source
|
|
(origin
|
|
;; The PyPI tarball does not include tests.
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/asottile/covdefaults")
|
|
(commit (string-append "v" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32 "11a24c0wzv01n55fy4kdpnyqna4m9k0mp58kmhiaks34xw4k37hq"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
`(#:phases
|
|
(modify-phases %standard-phases
|
|
(replace 'check
|
|
(lambda _
|
|
(invoke "pytest" "-vv"))))))
|
|
(native-inputs
|
|
`(("python-coverage" ,python-coverage)
|
|
("python-pytest" ,python-pytest)))
|
|
(home-page "https://github.com/asottile/covdefaults")
|
|
(synopsis "Coverage plugin to provide opinionated default settings")
|
|
(description
|
|
"Covdefaults is a coverage plugin to provide opinionated default
|
|
settings.")
|
|
(license license:expat)))
|
|
|
|
(define-public python-pytest-vcr
|
|
;; This commit fixes integration with pytest-5
|
|
(let ((commit "4d6c7b3e379a6a7cba0b8f9d20b704dc976e9f05")
|
|
(revision "1"))
|
|
(package
|
|
(name "python-pytest-vcr")
|
|
(version (git-version "1.0.2" revision commit))
|
|
(source
|
|
(origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/ktosiek/pytest-vcr")
|
|
(commit commit)))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"1yk988zi0la6zpcm3fff0mxf942di2jiymrfqas19nyngj5ygaqs"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
`(#:phases
|
|
(modify-phases %standard-phases
|
|
(replace 'check
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
(add-installed-pythonpath inputs outputs)
|
|
(invoke "pytest" "tests/"))))))
|
|
(propagated-inputs
|
|
`(("python-pytest" ,python-pytest)
|
|
("python-vcrpy" ,python-vcrpy)))
|
|
(home-page "https://github.com/ktosiek/pytest-vcr")
|
|
(synopsis "Plugin for managing VCR.py cassettes")
|
|
(description
|
|
"Plugin for managing VCR.py cassettes.")
|
|
(license license:expat))))
|
|
|
|
(define-public python-pytest-checkdocs
|
|
(package
|
|
(name "python-pytest-checkdocs")
|
|
(version "1.2.2")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-checkdocs" version))
|
|
(sha256
|
|
(base32 "0j6j1gvj6x451y3qsx4xbaq9p1w9gg3mwk7n0w80cy8vdyjkngb0"))))
|
|
(build-system python-build-system)
|
|
(propagated-inputs
|
|
`(("python-docutils" ,python-docutils)
|
|
("python-importlib-metadata" ,python-importlib-metadata)
|
|
("python-more-itertools" ,python-more-itertools)))
|
|
(native-inputs
|
|
`(("python-setuptools-scm" ,python-setuptools-scm)))
|
|
(home-page "https://github.com/jaraco/pytest-checkdocs")
|
|
(synopsis "Check the README when running tests")
|
|
(description
|
|
"This package provides a pytest plugin that checks the long description
|
|
of the project to ensure it renders properly.")
|
|
(license license:expat)))
|
|
|
|
(define-public python-pytest-trio
|
|
(package
|
|
(name "python-pytest-trio")
|
|
(version "0.6.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-trio" version))
|
|
(sha256
|
|
(base32 "1zm8didm9h5jkqhghl9bvqs7kr7sjci282c7grhk6yhpzn8a9w4v"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
`(#:phases
|
|
(modify-phases %standard-phases
|
|
(replace 'check
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
(add-installed-pythonpath inputs outputs)
|
|
(invoke "pytest" "-W" "error" "-ra" "-v" "--pyargs"
|
|
"pytest_trio" "--verbose" "--cov"))))))
|
|
(native-inputs
|
|
`(("python-hypothesis" ,python-hypothesis)
|
|
("python-pytest" ,python-pytest)
|
|
("python-pytest-cov" ,python-pytest-cov)))
|
|
(propagated-inputs
|
|
`(("python-trio" ,python-trio)))
|
|
(home-page "https://github.com/python-trio/pytest-trio")
|
|
(synopsis "Pytest plugin for trio")
|
|
(description
|
|
"This is a pytest plugin to help you test projects that use Trio, a
|
|
friendly library for concurrency and async I/O in Python.")
|
|
;; Either license applies.
|
|
(license (list license:expat license:asl2.0))))
|
|
|
|
(define-public python-pytest-flake8
|
|
(package
|
|
(name "python-pytest-flake8")
|
|
(version "1.0.6")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-flake8" version))
|
|
(sha256
|
|
(base32
|
|
"09vhn7r77s1yiqnlwfvh5585f904zpyd6620a90dpccfr1cbp0hv"))))
|
|
(build-system python-build-system)
|
|
(propagated-inputs
|
|
`(("python-flake8" ,python-flake8)))
|
|
(native-inputs
|
|
`(("python-pytest" ,python-pytest)))
|
|
(home-page "https://github.com/tholo/pytest-flake8")
|
|
(synopsis "Pytest plugin to check FLAKE8 requirements")
|
|
(description
|
|
"This package provides a pytest plugin for efficiently checking PEP8
|
|
compliance.")
|
|
(license license:bsd-3)))
|
|
|
|
(define-public python-pytest-isort
|
|
(package
|
|
(name "python-pytest-isort")
|
|
(version "0.3.1")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-isort" version))
|
|
(sha256
|
|
(base32 "06myn5hhxs5yp8dqr1yjsgcnnxnsrvsqannm00bvaw0qml6ydzjb"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
`(#:phases
|
|
(modify-phases %standard-phases
|
|
(replace 'check
|
|
(lambda _
|
|
(setenv "PYTHONPATH"
|
|
(string-append (getcwd) ":"
|
|
(getenv "PYTHONPATH")))
|
|
(invoke "pytest"))))))
|
|
(propagated-inputs
|
|
`(("python-isort" ,python-isort)
|
|
("python-pytest" ,python-pytest)))
|
|
(home-page "https://github.com/moccu/pytest-isort/")
|
|
(synopsis "Pytest plugin to check import ordering using isort")
|
|
(description
|
|
"This package provides a pytest plugin to check import ordering using
|
|
isort.")
|
|
(license license:bsd-3)))
|
|
|
|
(define-public python-pytest-shutil
|
|
(package
|
|
(name "python-pytest-shutil")
|
|
(version "1.7.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-shutil" version))
|
|
(sha256
|
|
(base32
|
|
"0q8j0ayzmnvlraml6i977ybdq4xi096djhf30n2m1rvnvrhm45nq"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
`(#:phases
|
|
(modify-phases %standard-phases
|
|
(add-after 'unpack 'patch-tests
|
|
(lambda _
|
|
(mkdir "/tmp/bin")
|
|
(substitute* "tests/integration/test_cmdline_integration.py"
|
|
(("dirname = '/bin'")
|
|
"dirname = '/tmp/bin'")
|
|
(("bindir = os.path.realpath\\('/bin'\\)")
|
|
"bindir = os.path.realpath('/tmp/bin')"))
|
|
#t)))))
|
|
(propagated-inputs
|
|
`(("python-contextlib2" ,python-contextlib2)
|
|
("python-execnet" ,python-execnet)
|
|
("python-pathpy" ,python-pathpy)
|
|
("python-termcolor" ,python-termcolor)))
|
|
(native-inputs
|
|
`(("python-mock" ,python-mock)
|
|
("python-pytest" ,python-pytest)
|
|
("python-setuptools-git" ,python-setuptools-git)))
|
|
(home-page "https://github.com/manahl/pytest-plugins")
|
|
(synopsis "Assorted shell and environment tools for py.test")
|
|
(description
|
|
"This package provides assorted shell and environment tools for the
|
|
py.test testing framework.")
|
|
(license license:expat)))
|
|
|
|
(define-public python-pytest-fixture-config
|
|
(package
|
|
(name "python-pytest-fixture-config")
|
|
(version "1.7.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-fixture-config" version))
|
|
(sha256
|
|
(base32
|
|
"13i1qpz22w3x4dmw8vih5jdnbqfqvl7jiqs0dg764s0zf8bp98a1"))))
|
|
(build-system python-build-system)
|
|
(native-inputs
|
|
`(("python-pytest" ,python-pytest)
|
|
("python-setuptools-git" ,python-setuptools-git)))
|
|
(home-page "https://github.com/manahl/pytest-plugins")
|
|
(synopsis "Fixture configuration utils for py.test")
|
|
(description
|
|
"This package provides fixture configuration utilities for the py.test
|
|
testing framework.")
|
|
(license license:expat)))
|
|
|
|
(define-public python-pytest-virtualenv
|
|
(package
|
|
(name "python-pytest-virtualenv")
|
|
(version "1.7.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-virtualenv" version))
|
|
(sha256
|
|
(base32
|
|
"03w2zz3crblj1p6i8nq17946hbn3zqp9z7cfnifw47hi4a4fww12"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
`(#:phases
|
|
(modify-phases %standard-phases
|
|
;; Reference the virtualenv executable directly, to avoid the need
|
|
;; for PYTHONPATH, which gets cleared when instantiating a new
|
|
;; virtualenv with pytest-virtualenv.
|
|
(add-after 'unpack 'patch-virtualenv-executable
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
(let* ((virtualenv (assoc-ref inputs "python-virtualenv"))
|
|
(virtualenv-bin (string-append virtualenv
|
|
"/bin/virtualenv")))
|
|
(substitute* "pytest_virtualenv.py"
|
|
(("^DEFAULT_VIRTUALENV_FIXTURE_EXECUTABLE.*$")
|
|
(format #f "DEFAULT_VIRTUALENV_FIXTURE_EXECUTABLE = '~a'"
|
|
virtualenv-bin)))
|
|
#t))))))
|
|
(propagated-inputs
|
|
`(("python-pytest-shutil" ,python-pytest-shutil)
|
|
("python-pytest-fixture-config" ,python-pytest-fixture-config)))
|
|
(inputs
|
|
`(("python-virtualenv" ,python-virtualenv)))
|
|
(native-inputs
|
|
`(("python-mock" ,python-mock)
|
|
("python-pytest" ,python-pytest)
|
|
("python-setuptools-git" ,python-setuptools-git)))
|
|
(home-page "https://github.com/manahl/pytest-plugins")
|
|
(synopsis "Virtualenv fixture for py.test")
|
|
(description "This package provides a virtualenv fixture for the py.test
|
|
framework.")
|
|
(license license:expat)))
|
|
|
|
(define-public python-pytest-pycodestyle
|
|
(package
|
|
(name "python-pytest-pycodestyle")
|
|
(version "2.0.0") ;later versions require python-pytest~=5.4
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-pycodestyle" version))
|
|
(sha256
|
|
(base32
|
|
"02i5gl7pm9cwxk15sn29inz3n8flpj1r3p1l110h43f2na5w8h7z"))))
|
|
(build-system python-build-system)
|
|
(propagated-inputs
|
|
`(("python-pycodestyle" ,python-pycodestyle)))
|
|
(native-inputs
|
|
`(("python-pytest" ,python-pytest)))
|
|
(home-page "https://github.com/henry0312/pytest-pycodestyle")
|
|
(synopsis "Pytest plugin to run pycodestyle")
|
|
(description "This package provides a plugin to run @code{pycodestyle}
|
|
for the @code{pytest} framework.")
|
|
(license license:expat)))
|
|
|
|
(define-public python-pytest-benchmark
|
|
(package
|
|
(name "python-pytest-benchmark")
|
|
(version "3.2.3")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-benchmark" version))
|
|
(sha256
|
|
(base32
|
|
"0a4mpb4j73dsyk47hd1prrjpfk4r458s102cn80rf253jg818hxd"))))
|
|
(build-system python-build-system)
|
|
(propagated-inputs
|
|
`(("python-py-cpuinfo" ,python-py-cpuinfo)))
|
|
(native-inputs
|
|
`(("python-pathlib2" ,python-pathlib2)
|
|
("python-pytest" ,python-pytest)))
|
|
(home-page "https://github.com/ionelmc/pytest-benchmark")
|
|
(synopsis "Pytest fixture for benchmarking code")
|
|
(description
|
|
"This package provides a pytest fixture that will group the tests into
|
|
rounds that are calibrated to the chosen timer.")
|
|
(license license:bsd-2)))
|
|
|
|
(define-public python-pytest-services
|
|
(package
|
|
(name "python-pytest-services")
|
|
(version "1.3.1")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-services" version))
|
|
(sha256
|
|
(base32
|
|
"0b2zfv04w6m3gp2v44ifdhx22vcji069qnn95ry3zcyxib7cjnq3"))))
|
|
(build-system python-build-system)
|
|
(arguments '(#:tests? #f)) ; Tests not included in release tarball.
|
|
(propagated-inputs
|
|
`(("python-psutil" ,python-psutil)
|
|
("python-requests" ,python-requests)))
|
|
(native-inputs
|
|
`(("python-pytest" ,python-pytest)))
|
|
(home-page "https://github.com/pytest-dev/pytest-services")
|
|
(synopsis "Services plugin for pytest testing framework")
|
|
(description
|
|
"This plugin provides a set of fixtures and utility functions to start
|
|
service processes for your tests with pytest.")
|
|
(license license:expat)))
|
|
|
|
(define-public python-pytest-toolbox
|
|
(package
|
|
(name "python-pytest-toolbox")
|
|
(version "0.4")
|
|
(source
|
|
(origin
|
|
;; No tests in the PyPI tarball.
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/samuelcolvin/pytest-toolbox")
|
|
(commit (string-append "v" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32 "1wqkr3g5gmqdxmhzfsxbwy8pm3cadaj6a8cxq58w9bacly4hqbh0"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
'(#:phases
|
|
(modify-phases %standard-phases
|
|
(replace 'check
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
;; Make the installed plugin discoverable by Pytest.
|
|
(add-installed-pythonpath inputs outputs)
|
|
(invoke "pytest" "-vv"))))))
|
|
(native-inputs
|
|
`(("python-coverage" ,python-coverage)
|
|
("python-docutils" ,python-docutils)
|
|
("python-flake8" ,python-flake8)
|
|
("python-isort" ,python-isort)
|
|
("python-pydantic" ,python-pydantic)
|
|
("python-pyflakes" ,python-pyflakes)
|
|
("python-pygments" ,python-pygments)
|
|
("python-pytest" ,python-pytest)
|
|
("python-pytest-cov" ,python-pytest-cov)
|
|
("python-pytest-isort" ,python-pytest-isort)
|
|
("python-pytest-mock" ,python-pytest-mock)
|
|
("python-pytest-sugar" ,python-pytest-sugar)))
|
|
(home-page "https://github.com/samuelcolvin/pytest-toolbox")
|
|
(synopsis "Numerous useful plugins for Pytest")
|
|
(description
|
|
"Pytest Toolbox contains many useful plugins for Pytest. Among them are
|
|
new fixtures, new methods and new comparison objects.")
|
|
(license license:expat)))
|
|
|
|
(define-public python-pytest-aiohttp
|
|
(package
|
|
(name "python-pytest-aiohttp")
|
|
(version "0.3.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-aiohttp" version))
|
|
(sha256
|
|
(base32
|
|
"0kx4mbs9bflycd8x9af0idcjhdgnzri3nw1qb0vpfyb3751qaaf9"))))
|
|
(build-system python-build-system)
|
|
(native-inputs
|
|
`(("python-pytest" ,python-pytest)))
|
|
(propagated-inputs
|
|
`(("python-aiohttp" ,python-aiohttp)))
|
|
(home-page "https://github.com/aio-libs/pytest-aiohttp/")
|
|
(synopsis "Pytest plugin for aiohttp support")
|
|
(description "This package provides a pytest plugin for aiohttp support.")
|
|
(license license:asl2.0)))
|
|
|
|
(define-public python-nbval
|
|
(package
|
|
(name "python-nbval")
|
|
(version "0.9.6")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "nbval" version))
|
|
(sha256
|
|
(base32 "0h3xrnw0mj1srigrx2rfnd73h8s0xjycclmjs0vx7qkfyqpcvvyg"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
`(#:phases
|
|
(modify-phases %standard-phases
|
|
(add-before 'check 'fix-test
|
|
(lambda _
|
|
;; This test fails because of a mismatch in the output of LaTeX
|
|
;; equation environments. Seems OK to skip.
|
|
(delete-file "tests/ipynb-test-samples/test-latex-pass-correctouput.ipynb")
|
|
#t))
|
|
(replace 'check
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
(add-installed-pythonpath inputs outputs)
|
|
(invoke "pytest" "-vv" "-k"
|
|
(string-append
|
|
;; This only works with Pytest < 5.
|
|
"not nbdime_reporter"
|
|
;; https://github.com/computationalmodelling/nbval/pull/148.
|
|
" and not test_timeouts")))))))
|
|
(native-inputs
|
|
`(("python-pytest" ,python-pytest)
|
|
("python-pytest-cov" ,python-pytest-cov)
|
|
("python-sympy" ,python-sympy)))
|
|
(propagated-inputs
|
|
`(("python-ipykernel" ,python-ipykernel)
|
|
("python-jupyter-client" ,python-jupyter-client)
|
|
("python-nbformat" ,python-nbformat)
|
|
("python-six" ,python-six)))
|
|
(home-page "https://github.com/computationalmodelling/nbval")
|
|
(synopsis "Pytest plugin to validate Jupyter notebooks")
|
|
(description
|
|
"This plugin adds functionality to Pytest to recognise and collect Jupyter
|
|
notebooks. The intended purpose of the tests is to determine whether execution
|
|
of the stored inputs match the stored outputs of the @file{.ipynb} file. Whilst
|
|
also ensuring that the notebooks are running without errors.")
|
|
(license license:bsd-3)))
|
|
|
|
(define-public python-pytest-flask
|
|
(package
|
|
(name "python-pytest-flask")
|
|
(version "1.0.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-flask" version))
|
|
(sha256
|
|
(base32
|
|
"1hln7mwgdzfi5ma0kqfsi768l7p24jhkw8l0imhifwy08nh7hmjd"))))
|
|
(build-system python-build-system)
|
|
(native-inputs
|
|
`(("python-flask" ,python-flask)
|
|
("python-pytest" ,python-pytest)
|
|
("python-setuptools-scm" ,python-setuptools-scm)
|
|
("python-werkzeug" ,python-werkzeug)))
|
|
(home-page "https://github.com/pytest-dev/pytest-flask")
|
|
(synopsis "Pytest fixtures to test Flask applications")
|
|
(description
|
|
"This pytest plugin provides fixtures to simplify Flask app testing.")
|
|
(license license:expat)))
|
|
|
|
(define-public python-pytest-env
|
|
(package
|
|
(name "python-pytest-env")
|
|
(version "0.6.2")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pytest-env" version))
|
|
(sha256
|
|
(base32 "1hl0ln0cicdid4qjk7mv90lw9xkb0v71dlj7q7rn89vzxxm9b53y"))))
|
|
(build-system python-build-system)
|
|
(native-inputs
|
|
`(("python-pytest" ,python-pytest)))
|
|
(home-page "https://github.com/MobileDynasty/pytest-env")
|
|
(synopsis "Pytest plugin that allows you to add environment variables")
|
|
(description
|
|
"This is a @code{py.test} plugin that enables you to set environment
|
|
variables in the @file{pytest.ini} file.")
|
|
(license license:expat)))
|
|
|
|
(define-public python-codacy-coverage
|
|
(package
|
|
(name "python-codacy-coverage")
|
|
(version "1.3.11")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "codacy-coverage" version))
|
|
(sha256
|
|
(base32
|
|
"1g0c0w56xdkmqb8slacyw5qhzrkp814ng3ddh2lkiij58y9m2imr"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
`(#:tests? #f)); no tests
|
|
(propagated-inputs
|
|
`(("python-check-manifest" ,python-check-manifest)))
|
|
(home-page "https://github.com/codacy/python-codacy-coverage")
|
|
(synopsis "Codacy coverage reporter for Python")
|
|
(description "This package analyses Python test suites and reports how much
|
|
of the code is covered by them. This tool is part of the Codacy suite for
|
|
analysing code quality.")
|
|
(license license:expat)))
|
|
|
|
(define-public python-httmock
|
|
(package
|
|
(name "python-httmock")
|
|
(version "1.3.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "httmock" version))
|
|
(sha256
|
|
(base32
|
|
"1zj1fcm0n6f0wr9mr0hmlqz9430fnr5cdwd5jkcvq9j44bnsrfz0"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
`(#:tests? #f)); no tests
|
|
(propagated-inputs
|
|
`(("python-requests" ,python-requests)))
|
|
(home-page "https://github.com/patrys/httmock")
|
|
(synopsis "Mocking library for requests.")
|
|
(description "This package provides a library for replying fake data to
|
|
Python software under test, when they make an HTTP query.")
|
|
(license license:asl2.0)))
|
|
|
|
(define-public python-atpublic
|
|
(package
|
|
(name "python-atpublic")
|
|
(version "1.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "atpublic" version))
|
|
(sha256
|
|
(base32
|
|
"0i3sbxkdlbb4560rrlmwwd5y4ps7k73lp4d8wnmd7ag9k426gjkx"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
'(#:phases
|
|
(modify-phases %standard-phases
|
|
(add-before 'build 'enable-c-implementation
|
|
(lambda _
|
|
(setenv "ATPUBLIC_BUILD_EXTENSION" "yes")
|
|
#t))
|
|
(replace 'check
|
|
(lambda _
|
|
(invoke "python" "-m" "nose2" "-v"))))))
|
|
(native-inputs
|
|
`(("python-nose2" ,python-nose2)))
|
|
(home-page "https://public.readthedocs.io/")
|
|
(synopsis "@code{@@public} decorator for populating @code{__all__}")
|
|
(description
|
|
"This Python module adds a @code{@@public} decorator and function which
|
|
populates a module's @code{__all__} and optionally the module globals. With
|
|
it, the declaration of a name's public export semantics are not separated from
|
|
the implementation of that name.")
|
|
(license (list license:asl2.0
|
|
license:lgpl3)))) ; only for setup_helpers.py
|
|
|
|
(define-public python-mypy-extensions
|
|
(package
|
|
(name "python-mypy-extensions")
|
|
(version "0.4.3")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "mypy_extensions" version))
|
|
(sha256
|
|
(base32
|
|
"1a04qsk8hd1lqns8w1j7cr0vmvbhg450di5k1i16kqxkbf7q30id"))))
|
|
(build-system python-build-system)
|
|
(arguments `(#:tests? #f)); no tests
|
|
(home-page "https://github.com/python/mypy_extensions")
|
|
(synopsis "Experimental extensions for MyPy")
|
|
(description "The @code{python-mypy-extensions} module defines
|
|
experimental extensions to the standard @code{typing} module that are
|
|
supported by the MyPy typechecker.")
|
|
(license license:expat)))
|
|
|
|
(define-public python-mypy
|
|
(package
|
|
(name "python-mypy")
|
|
(version "0.782")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "mypy" version))
|
|
(sha256
|
|
(base32
|
|
"030kn709515452n6gy2i1d9fg6fyrkmdz228lfpmbslybsld9xzg"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
`(#:phases
|
|
(modify-phases %standard-phases
|
|
(replace 'check
|
|
(lambda _
|
|
(invoke "./runtests.py")
|
|
#t)))))
|
|
(native-inputs
|
|
`(("python-attrs" ,python-attrs)
|
|
("python-flake8" ,python-flake8)
|
|
("python-flake8-bugbear" ,python-flake8-bugbear)
|
|
("python-flake8-pyi" ,python-flake8-pyi)
|
|
("python-importlib-metadata" ,python-importlib-metadata)
|
|
("python-lxml" ,python-lxml)
|
|
("python-psutil" ,python-psutil)
|
|
("python-py" ,python-py)
|
|
("python-pytest" ,python-pytest)
|
|
("python-pytest-cov" ,python-pytest-cov)
|
|
("python-pytest-forked" ,python-pytest-forked)
|
|
("python-pytest-xdist" ,python-pytest-xdist)
|
|
("python-virtualenv" ,python-virtualenv)))
|
|
(propagated-inputs
|
|
`(("python-mypy-extensions" ,python-mypy-extensions)
|
|
("python-typing-extensions" ,python-typing-extensions)
|
|
("python-typed-ast" ,python-typed-ast)))
|
|
(home-page "http://www.mypy-lang.org/")
|
|
(synopsis "Static type checker for Python")
|
|
(description "Mypy is an optional static type checker for Python that aims
|
|
to combine the benefits of dynamic (or 'duck') typing and static typing. Mypy combines
|
|
the expressive power and convenience of Python with a powerful type system and
|
|
compile-time type checking. Mypy type checks standard Python programs; run them using
|
|
any Python VM with basically no runtime overhead.")
|
|
;; Most of the code is under MIT license; Some files are under Python Software
|
|
;; Foundation License version 2: stdlib-samples/*, mypyc/lib-rt/pythonsupport.h and
|
|
;; mypyc/lib-rt/getargs.c
|
|
(license (list license:expat license:psfl))))
|