From 9e7f09cbec40257619e57edfdd700c775e96833d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 13 Apr 2021 13:39:33 +0200 Subject: gnu: python-tinycss2: Enable tests. * gnu/packages/python-web.scm (python-tinycss2)[source]: Fetch from git repository to include tests. [arguments]: Build from source with flit. [native-inputs]: Add python-flit, python-pytest, python-pytest-cov, python-pytest-flake8, and python-pytest-isort. --- gnu/packages/python-web.scm | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 6ae377a55d..1e57165509 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -4563,18 +4563,47 @@ (define-public python-tinycss2 (version "1.1.0") (source (origin - (method url-fetch) - (uri (pypi-uri "tinycss2" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/Kozea/tinycss2") + (commit (string-append "v" version)) + (recursive? #true))) + (file-name (git-file-name name version)) (sha256 - (base32 "12p16k8x8ig51gpfcwz3k3kxpxrwwkn41a1avdgvh3nn8hqarp7v")))) + (base32 "0zyc48vbmczpqj7f3f0d7zb3bz29fyj50dg0m6bbwbr5i88kq3sq")))) (build-system python-build-system) (arguments - ;; Test data is missing from the PyPI archive, and the build system is - ;; based on Flit, which wants an unmaintained and unpackaged - ;; python-pytoml dependency. - `(#:tests? #f)) + `(#:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + ;; A ZIP archive should be generated, but it fails with "ZIP does + ;; not support timestamps before 1980". Luckily, + ;; SOURCE_DATE_EPOCH is respected, which we set to some time in + ;; 1980. + (setenv "SOURCE_DATE_EPOCH" "315532800") + (invoke "flit" "build"))) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (let ((out (assoc-ref outputs "out"))) + (for-each (lambda (wheel) + (format #true wheel) + (invoke "python" "-m" "pip" "install" + wheel (string-append "--prefix=" out))) + (find-files "dist" "\\.whl$"))))) + (replace 'check + (lambda* (#:key inputs outputs tests? #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (invoke "pytest" "-vv")))))) (propagated-inputs `(("python-webencodings" ,python-webencodings))) + (native-inputs + `(("python-flit" ,python-flit) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-flake8" ,python-pytest-flake8) + ("python-pytest-isort" ,python-pytest-isort))) (home-page "https://tinycss2.readthedocs.io/") (synopsis "Low-level CSS parser for Python") (description "@code{tinycss2} can parse strings, return Python objects -- cgit v1.2.3