mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
build-system/pyproject: Add stestr, unittest and custom options.
* guix/build-system/pyproject.scm (check): Add stestr, unittest and custom test-backends. Change-Id: I2d44b3b8dd928ab844b4479fb073afff845e13ee Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
This commit is contained in:
parent
74a1e9d543
commit
9a40c5145d
1 changed files with 18 additions and 6 deletions
|
@ -150,18 +150,26 @@ builder.build_wheel(sys.argv[3], config_settings=config_settings)"
|
||||||
(let* ((pytest (which "pytest"))
|
(let* ((pytest (which "pytest"))
|
||||||
(nosetests (which "nosetests"))
|
(nosetests (which "nosetests"))
|
||||||
(nose2 (which "nose2"))
|
(nose2 (which "nose2"))
|
||||||
|
(stestr (which "stestr"))
|
||||||
(have-setup-py (file-exists? "setup.py"))
|
(have-setup-py (file-exists? "setup.py"))
|
||||||
|
;; unittest default pattern
|
||||||
|
;; See https://docs.python.org/3/library/unittest.html\
|
||||||
|
;; #cmdoption-unittest-discover-p
|
||||||
|
(tests-found (find-files "." "test.*\\.py$"))
|
||||||
(use-test-backend
|
(use-test-backend
|
||||||
(or test-backend
|
(or test-backend
|
||||||
;; Prefer pytest
|
;; Prefer pytest
|
||||||
(if pytest 'pytest #f)
|
(if pytest 'pytest #f)
|
||||||
|
(if stestr 'stestr #f)
|
||||||
(if nosetests 'nose #f)
|
(if nosetests 'nose #f)
|
||||||
(if nose2 'nose2 #f)
|
(if nose2 'nose2 #f)
|
||||||
;; But fall back to setup.py, which should work for most
|
;; Fall back to setup.py. The command is deprecated, but is
|
||||||
;; packages. XXX: would be nice not to depend on setup.py here?
|
;; a superset of unittest, so should work for most packages.
|
||||||
;; fails more often than not to find any tests at all. Maybe
|
;; Keep it until setuptools removes `setup.py test'.
|
||||||
;; we can run `python -m unittest`?
|
;; See https://setuptools.pypa.io/en/latest/deprecated/\
|
||||||
(if have-setup-py 'setup.py #f))))
|
;; commands.html#test-build-package-and-run-a-unittest-suite
|
||||||
|
(if have-setup-py 'setup.py #f)
|
||||||
|
(if tests-found 'unittest #f))))
|
||||||
(format #t "Using ~a~%" use-test-backend)
|
(format #t "Using ~a~%" use-test-backend)
|
||||||
(match use-test-backend
|
(match use-test-backend
|
||||||
('pytest
|
('pytest
|
||||||
|
@ -175,7 +183,11 @@ builder.build_wheel(sys.argv[3], config_settings=config_settings)"
|
||||||
(if (null? test-flags)
|
(if (null? test-flags)
|
||||||
'("test" "-v")
|
'("test" "-v")
|
||||||
test-flags)))
|
test-flags)))
|
||||||
('python
|
('stestr
|
||||||
|
(apply invoke stestr "run" test-flags))
|
||||||
|
('unittest
|
||||||
|
(apply invoke "python" "-m" "unittest" test-flags))
|
||||||
|
('custom
|
||||||
(apply invoke "python" test-flags))
|
(apply invoke "python" test-flags))
|
||||||
;; The developer should explicitly disable tests in this case.
|
;; The developer should explicitly disable tests in this case.
|
||||||
(else (raise (condition (&test-system-not-found))))))
|
(else (raise (condition (&test-system-not-found))))))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue