From 72d292eac0345918f7313588f9e6de1a83e57952 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Mon, 18 Apr 2022 01:23:56 -0400 Subject: 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 c70173b329..ce0e035f76 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -32,7 +32,7 @@ ;;; Copyright © 2017 Kristofer Buffington ;;; Copyright © 2018 Amirouche Boubekki ;;; Copyright © 2018 Joshua Sierles, Nextjournal -;;; Copyright © 2018, 2021 Maxim Cournoyer +;;; Copyright © 2018, 2021, 2022 Maxim Cournoyer ;;; Copyright © 2019 Jack Hill ;;; Copyright © 2019 Alex Griffin ;;; Copyright © 2019 Gábor Boskovits @@ -3367,16 +3367,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 @@ -3388,7 +3393,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 -- cgit v1.2.3