summary refs log tree commit diff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2024-05-02 21:38:47 +0200
committerRicardo Wurmus <rekado@elephly.net>2024-05-05 22:38:17 +0200
commit36a1e76173b025376ee880280d84bdb20febf52d (patch)
tree66626069e2859eeba0d2643106f8c26d7d1eb4f0
parent6095e5b43649b3ec47c8f2e7a88124041dd59907 (diff)
downloadguix-36a1e76173b025376ee880280d84bdb20febf52d.tar.gz
gnu: snakemake: Fetch from git repository.
* gnu/packages/python-xyz.scm (snakemake)[source]: Fetch from git repository
to include tests.
[arguments]: Enable tests; add 'pre-check phase.
[build-system]: Use pyproject-build-system.
[native-inputs]: Add git-minimal, python-wrapper, python-pytest,
python-pandas, and python-requests-mock.

Change-Id: I32e9d36752cc91eacb8f05138d969834dbbce817
-rw-r--r--gnu/packages/python-xyz.scm33
1 files changed, 26 insertions, 7 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 7f368d1ebc..788148f32b 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -13200,15 +13200,26 @@ approach.")
     (version "5.32.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "snakemake" version))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/snakemake/snakemake")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "13013gdavwvyj1qr9xfi9fpwhb3km8c3z53bja5b7ic3sb2z6dgz"))))
-    (build-system python-build-system)
+        (base32 "0nxp4z81vykv07kv2b6zrwk7ns8s10zqsb7vcignp8695yq3nlcm"))))
+    (build-system pyproject-build-system)
     (arguments
-     ;; TODO: Package missing test dependencies.
      (list
-      #:tests? #f
+      #:test-flags
+      '(list
+        ;; We have no TES support.
+        "--ignore=tests/test_tes.py"
+        ;; This test attempts to change S3 buckets on AWS and fails
+        ;; because there are no AWS credentials.
+        "--ignore=tests/test_tibanna.py"
+        ;; It's a similar story with this test, which requires access
+        ;; to the Google Storage service.
+        "--ignore=tests/test_google_lifesciences.py")
       #:phases
       #~(modify-phases %standard-phases
           ;; For cluster execution Snakemake will call Python.  Since there is
@@ -13218,7 +13229,9 @@ approach.")
             (lambda _
               (substitute* "snakemake/executors/__init__.py"
                 (("\\{sys.executable\\} -m snakemake")
-                 (string-append #$output "/bin/snakemake"))))))))
+                 (string-append #$output "/bin/snakemake")))))
+          (add-before 'check 'pre-check
+            (lambda _ (setenv "HOME" "/tmp"))))))
     (propagated-inputs
      (list python-appdirs
            python-configargparse
@@ -13236,6 +13249,12 @@ approach.")
            python-requests
            python-toposort
            python-wrapt))
+    (native-inputs
+     (list git-minimal
+           python-wrapper
+           python-pytest
+           python-pandas
+           python-requests-mock))
     (home-page "https://snakemake.readthedocs.io")
     (synopsis "Python-based execution environment for make-like workflows")
     (description