[bug#41455,1/2] gnu: Add python-pytest-4
diff mbox series

Message ID 87imgjyuir.fsf@alice.lan
State Accepted
Headers show
Series
  • [bug#41455,1/2] gnu: Add python-pytest-4
Related show

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job

Commit Message

Edouard Klein May 26, 2020, 8:23 a.m. UTC
* gnu/packages/check.scm (python-pytest-4): New variable.
---
 gnu/packages/check.scm | 49 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

Comments

Marius Bakke May 30, 2020, 12:07 p.m. UTC | #1
Edouard Klein <edk@beaver-labs.com> writes:

> * gnu/packages/check.scm (python-pytest-4): New variable.

[...]
  
> +(define-public python-pytest-4
> +  (package
> +    (name "python-pytest-4")
> +    (version "4.5.0")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       ;; Pypi source tarball does not include tests
> +       (uri (git-reference
> +             (url "https://github.com/pytest-dev/pytest.git")
> +             (commit version)))
> +       (file-name "python-pytest-4")
> +       (sha256
> +        (base32
> +         "0igxfasjqabkzlb81vxqr58pfsdwjx4zzd1nc1b48wn6xnkkllhk"))))
> +    (build-system python-build-system)
> +    (propagated-inputs
> +     `(("python-atomicwrites" ,python-atomicwrites)
> +       ("python-attrs" ,python-attrs)
> +       ("python-attrs" ,python-attrs)
> +       ("python-more-itertools" ,python-more-itertools)
> +       ("python-pluggy" ,python-pluggy)
> +       ("python-six" ,python-six)
> +       ("python-py" ,python-py)
> +       ("python-wcwidth" ,python-wcwidth)))
> +    (native-inputs
> +     `(("python-setuptools-scm" ,python-setuptools-scm)
> +       ("git" ,git)))
> +    (arguments `(#:phases
> +                 (modify-phases %standard-phases
> +                   (add-after 'unpack 'git-tag
> +                     (lambda _
> +                       ;; setuptools-scm needs to know the version
> +                       (invoke "git" "init")
> +                       (invoke "git" "add" ".")
> +                       (invoke "git" "config" "user.name" "John Doe")
> +                       (invoke "git" "config" "user.email" "nobody@example.com")
> +                       (invoke "git" "commit" "-m" "dummy commit")
> +                       (invoke "git" "tag" ,version))))))
> +    (home-page "https://docs.pytest.org/en/latest/")
> +    (synopsis "Python testing library")
> +    (description
> +     "Pytest is a testing tool that provides auto-discovery of test modules
> +and functions, detailed info on failing assert statements, modular fixtures,
> +and many external plugins.")
> +    (license license:expat)))

Can you make this inherit from pytest instead of duplicating all the
fields?

Also, we should find a way to get rid of the git dependency.  Weird that
other versions of Pytest don't have this requirement.

Patch
diff mbox series

diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 7d7fd189bc..5d3e44a16d 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -33,6 +33,7 @@ 
 ;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com>
+;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -66,6 +67,7 @@ 
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages time)
   #:use-module (gnu packages xml)
   #:use-module (guix utils)
@@ -819,6 +821,53 @@  and many external plugins.")
     (license license:expat)
     (properties `((python2-variant . ,(delay python2-pytest))))))
 
+(define-public python-pytest-4
+  (package
+    (name "python-pytest-4")
+    (version "4.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       ;; Pypi source tarball does not include tests
+       (uri (git-reference
+             (url "https://github.com/pytest-dev/pytest.git")
+             (commit version)))
+       (file-name "python-pytest-4")
+       (sha256
+        (base32
+         "0igxfasjqabkzlb81vxqr58pfsdwjx4zzd1nc1b48wn6xnkkllhk"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-atomicwrites" ,python-atomicwrites)
+       ("python-attrs" ,python-attrs)
+       ("python-attrs" ,python-attrs)
+       ("python-more-itertools" ,python-more-itertools)
+       ("python-pluggy" ,python-pluggy)
+       ("python-six" ,python-six)
+       ("python-py" ,python-py)
+       ("python-wcwidth" ,python-wcwidth)))
+    (native-inputs
+     `(("python-setuptools-scm" ,python-setuptools-scm)
+       ("git" ,git)))
+    (arguments `(#:phases
+                 (modify-phases %standard-phases
+                   (add-after 'unpack 'git-tag
+                     (lambda _
+                       ;; setuptools-scm needs to know the version
+                       (invoke "git" "init")
+                       (invoke "git" "add" ".")
+                       (invoke "git" "config" "user.name" "John Doe")
+                       (invoke "git" "config" "user.email" "nobody@example.com")
+                       (invoke "git" "commit" "-m" "dummy commit")
+                       (invoke "git" "tag" ,version))))))
+    (home-page "https://docs.pytest.org/en/latest/")
+    (synopsis "Python testing library")
+    (description
+     "Pytest is a testing tool that provides auto-discovery of test modules
+and functions, detailed info on failing assert statements, modular fixtures,
+and many external plugins.")
+    (license license:expat)))
+
 ;; Pytest 4.x are the last versions that support Python 2.
 (define-public python2-pytest
   (package