apteryx pushed a commit to branch wip-ipython-polyglossia
in repository guix.

commit e97fc2632b9c45e1f3307134edb124b68f46c298
Author: Maxim Cournoyer <[email protected]>
AuthorDate: Mon Apr 18 01:23:56 2022 -0400

    gnu: python-sqlalchemy: Run tests in parallel via xdist.
    
    * gnu/packages/databases.scm (python-sqlalchemy)[phases]: Use gexps.
    {check}: Run tests in parallel; skip slow test_memusage.
    * gnu/packages/databases.scm (python2-sqlalchemy): Adjust to avoid xdist.
---
 gnu/packages/databases.scm | 39 ++++++++++++++++++++++++++++++---------
 1 file changed, 30 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 4472677ab3..6784202c35 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -32,7 +32,7 @@
 ;;; Copyright © 2017 Kristofer Buffington <[email protected]>
 ;;; Copyright © 2018 Amirouche Boubekki <[email protected]>
 ;;; Copyright © 2018 Joshua Sierles, Nextjournal <[email protected]>
-;;; Copyright © 2018, 2021 Maxim Cournoyer <[email protected]>
+;;; Copyright © 2018, 2021, 2022 Maxim Cournoyer <[email protected]>
 ;;; Copyright © 2019 Jack Hill <[email protected]>
 ;;; Copyright © 2019 Alex Griffin <[email protected]>
 ;;; Copyright © 2019 Gábor Boskovits <[email protected]>
@@ -3364,16 +3364,21 @@ Database API 2.0T.")
     (build-system python-build-system)
     (native-inputs
      (list python-cython ; for C extensions
-           python-pytest python-mock)) ; for tests
+           python-pytest python-mock python-pytest-xdist)) ; for tests
     (propagated-inputs
      (list python-greenlet))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (invoke "py.test")))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (invoke "pytest" "-vv"
+                        "-n" (number->string (parallel-job-count))
+                        ;; The memory usage tests are very expensive and run in
+                        ;; sequence; skip them.
+                        "-k" "not test_memusage.py")))))))
     (home-page "https://www.sqlalchemy.org";)
     (synopsis "Database abstraction library")
     (description
@@ -3385,7 +3390,23 @@ simple and Pythonic domain language.")
     (license license:x11)))
 
 (define-public python2-sqlalchemy
-  (package-with-python2 python-sqlalchemy))
+  (let ((base (package-with-python2 python-sqlalchemy)))
+    (package
+      (inherit base)
+      (arguments
+       (substitute-keyword-arguments (package-arguments base)
+         ((#:phases phases)
+          #~(modify-phases #$phases
+              (replace 'check
+                (lambda* (#:key tests? #:allow-other-keys)
+                  (when tests?
+                    (invoke "pytest" "-vv"
+                            ;; The memory usage tests are very expensive and 
run in
+                            ;; sequence; skip them.
+                            "-k" "not test_memusage.py"))))))))
+      ;; Do not use pytest-xdist, which is broken for Python 2.
+      (native-inputs (modify-inputs (package-native-inputs base)
+                       (delete "python-pytest-xdist"))))))
 
 (define-public python-sqlalchemy-stubs
   (package

Reply via email to