gnu: Add python-nox.

* gnu/packages/python-check.scm (python-nox): New variable.
  Sort modules alphabetically and add pyproject build system.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Sharlatan Hellseher 2023-01-06 23:11:32 +00:00 committed by Ludovic Courtès
parent 99efb55cd4
commit 8d97c66dfe
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -9,7 +9,7 @@
;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com> ;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2021-2022 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2021-2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot> ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com> ;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
@ -39,8 +39,8 @@ (define-module (gnu packages python-check)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages docker)
#:use-module (gnu packages django) #:use-module (gnu packages django)
#:use-module (gnu packages docker)
#:use-module (gnu packages openstack) #:use-module (gnu packages openstack)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages python-build) #:use-module (gnu packages python-build)
@ -50,13 +50,14 @@ (define-module (gnu packages python-check)
#:use-module (gnu packages web) #:use-module (gnu packages web)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (guix utils)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix download)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix download) #:use-module (guix packages)
#:use-module (guix build-system python)) #:use-module (guix utils))
(define-public python-tappy (define-public python-tappy
(package (package
@ -2339,6 +2340,56 @@ (define-public python-test-utils
which make writing and running functional and integration tests easier.") which make writing and running functional and integration tests easier.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public python-nox
(package
(name "python-nox")
(version "2022.11.21")
(source
(origin
;; No tests in the PyPI tarball.
(method git-fetch)
(uri (git-reference
(url "https://github.com/wntrblm/nox")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1xfd63h75wiiyri4f7qyvy50f2ny0v4r4wx2h4px9ddbkh2k5g9p"))))
(build-system pyproject-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
;; NOTE: This manipulation looks not clear as upstream package
;; contains "nox/tox_to_nox.jinja2" file which is not copied
;; during install phase and causes check and sanity-check
;; phases fail due to missing file. Try to find more simple
;; solution.
(add-after 'unpack 'rename-tox-to-nox-jinja2
(lambda _
(rename-file "nox/tox_to_nox.jinja2" "nox/tox_to_nox.jinja2.py")))
(add-after 'install 'rename-tox-to-nox-jinja2-back
(lambda _
(let* ((src-file (car (find-files (string-append #$output "/lib")
"tox_to_nox\\.jinja2\\.py$")))
(dst-file (string-drop-right src-file 3)))
(rename-file src-file dst-file)))))))
(propagated-inputs
(list python-argcomplete
python-colorlog
python-packaging
python-py
python-virtualenv))
(native-inputs
(list python-jinja2
python-pytest
python-tox))
(home-page "https://nox.thea.codes/")
(synopsis "Flexible test automation")
(description
"@code{nox} is a command-line tool that automates testing in multiple
Python environments, similar to @code{tox}. Unlike tox, Nox uses a standard
Python file for configuration.")
(license license:asl2.0)))
(define-public python-tox (define-public python-tox
(package (package
(name "python-tox") (name "python-tox")