From 3bdae33948e227cf6db84b037fc8788bb49c85d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20de=20Kok?= Date: Thu, 18 Feb 2021 09:23:03 +0100 Subject: [PATCH] python3Packages.setuptools-rust: add passthru test that uses maturinBuildHook The test builds the PyO3 word_count example module using setuptools-rust. The motivation is to have a trivial test that does not regress for reasons unrelated to setuptools-rust or hook updates. --- .../setuptools-rust/default.nix | 5 ++++- .../setuptools-rust/pyo3-test/default.nix | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/python-modules/setuptools-rust/pyo3-test/default.nix diff --git a/pkgs/development/python-modules/setuptools-rust/default.nix b/pkgs/development/python-modules/setuptools-rust/default.nix index ee4a3b551649..cdf5e5aa27fc 100644 --- a/pkgs/development/python-modules/setuptools-rust/default.nix +++ b/pkgs/development/python-modules/setuptools-rust/default.nix @@ -1,4 +1,5 @@ -{ lib +{ callPackage +, lib , buildPythonPackage , fetchPypi , isPy27 @@ -23,6 +24,8 @@ buildPythonPackage rec { propagatedBuildInputs = [ semantic-version setuptools toml ]; + passthru.tests.pyo3 = callPackage ./pyo3-test {}; + meta = with lib; { description = "Setuptools plugin for Rust support"; homepage = "https://github.com/PyO3/setuptools-rust"; diff --git a/pkgs/development/python-modules/setuptools-rust/pyo3-test/default.nix b/pkgs/development/python-modules/setuptools-rust/pyo3-test/default.nix new file mode 100644 index 000000000000..9af17aa5159c --- /dev/null +++ b/pkgs/development/python-modules/setuptools-rust/pyo3-test/default.nix @@ -0,0 +1,21 @@ +{ callPackage +, rustPlatform +, setuptools-rust +}: + +callPackage ../../../tools/rust/maturin/pyo3-test/generic.nix { + # Isolated builds break for this package, because PyO3 is not + # in the build root of the Python Package: + # + # https://github.com/pypa/pip/issues/6276 + # + format = "setuptools"; + + nativeBuildInputs = [ setuptools-rust ] ++ (with rustPlatform; [ + cargoSetupHook + rust.cargo + rust.rustc + ]); + + sourceRoot = "source/examples/word-count"; +}