summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2022-02-20 14:02:31 +0200
committerEfraim Flashner <efraim@flashner.co.il>2022-02-20 14:02:31 +0200
commit14a556c7ed1e643a4388ca54b68be2f4a89b2161 (patch)
treec3c168a46dd079eb6545d80623e2458bce58527a /gnu
parent781dd2de230e37e1dc05c992936125655fdf842f (diff)
downloadguix-14a556c7ed1e643a4388ca54b68be2f4a89b2161.tar.gz
gnu: python-aiohttp: Fallback to running tests sequentially.
* gnu/packages/python-web.scm (python-aiohttp)[arguments]: Adjust custom
'check phase to run the tests sequentially if they fail when run in
parallel.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/python-web.scm49
1 files changed, 28 insertions, 21 deletions
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 76d9a3e0c4..456323ca55 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -268,27 +268,34 @@ for adding, removing and dropping callbacks.")
                 (find-files "." "_.*\\.pyx$")))))
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               ;; This tests requires the 'proxy.py' module, not yet
-               ;; packaged.
-               (delete-file "tests/test_proxy_functional.py")
-               (invoke "pytest" "-vv"
-                       ;; Disable loading the aiohttp coverage plugin
-                       ;; to avoid a circular dependency (code coverage
-                       ;; is not very interesting to us anyway).
-                       "-o" "addopts=''" "--ignore=aiohttp"
-                       "-n" (number->string (parallel-job-count))
-                       "-k" (string-append
-                             ;; This test probably requires to be run with the
-                             ;; library loaded from the the build directory.
-                             "not test_c_parser_loaded and "
-                             ;; Disable the following tests as they require
-                             ;; networking.
-                             "not TestDeflateBuffer and "
-                             "not test_client_session_timeout_zero and "
-                             "not test_empty_body and "
-                             "not test_mark_formdata_as_processed[pyloop] and "
-                             "not test_receive_runtime_err[pyloop]"))))))))
+             (let ((skipped-tests
+                     (string-append
+                       ;; This test probably requires to be run with the
+                       ;; library loaded from the the build directory.
+                       "not test_c_parser_loaded and "
+                       ;; Disable the following tests as they require
+                       ;; networking.
+                       "not TestDeflateBuffer and "
+                       "not test_client_session_timeout_zero and "
+                       "not test_empty_body and "
+                       "not test_mark_formdata_as_processed[pyloop] and "
+                       "not test_receive_runtime_err[pyloop]")))
+               (when tests?
+                 ;; This tests requires the 'proxy.py' module, not yet
+                 ;; packaged.
+                 (delete-file "tests/test_proxy_functional.py")
+                 ;; Sometimes tests fail when run in parallel.
+                 (or
+                   (invoke "pytest" "-vv"
+                           ;; Disable loading the aiohttp coverage plugin
+                           ;; to avoid a circular dependency (code coverage
+                           ;; is not very interesting to us anyway).
+                           "-o" "addopts=''" "--ignore=aiohttp"
+                           "-n" (number->string (parallel-job-count))
+                           "-k" skipped-tests)
+                   (invoke "pytest" "-vv"
+                           "-o" "addopts=''" "--ignore=aiohttp"
+                           "-k" skipped-tests)))))))))
     (propagated-inputs
      (list python-aiodns
            python-aiosignal