From eb940dc9a3194b64d3063cdd6d8e63b86a34502f Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Fri, 8 May 2020 17:01:46 +0200 Subject: [PATCH] Add test case for editable mkPoetryEnv --- tests/default.nix | 1 + tests/editable/default.nix | 24 ++++++++++++++++++++++++ tests/editable/poetry.lock | 7 +++++++ tests/editable/pyproject.toml | 12 ++++++++++++ tests/editable/src/trivial/__main__.py | 1 + 5 files changed, 45 insertions(+) create mode 100644 tests/editable/default.nix create mode 100644 tests/editable/poetry.lock create mode 100644 tests/editable/pyproject.toml create mode 100644 tests/editable/src/trivial/__main__.py diff --git a/tests/default.nix b/tests/default.nix index ec50295..c549b14 100644 --- a/tests/default.nix +++ b/tests/default.nix @@ -36,6 +36,7 @@ builtins.removeAttrs canonical-module-names = callTest ./canonical-module-names { }; wandb = callTest ./wandb { }; dependency-environment = callTest ./dependency-environment { }; + editable = callTest ./editable { }; # Test building poetry inherit poetry; diff --git a/tests/editable/default.nix b/tests/editable/default.nix new file mode 100644 index 0000000..7e7ca1b --- /dev/null +++ b/tests/editable/default.nix @@ -0,0 +1,24 @@ +{ lib, poetry2nix, python3, runCommand }: +let + env = poetry2nix.mkPoetryEnv { + python = python3; + pyproject = ./pyproject.toml; + poetrylock = ./poetry.lock; + + editablePackageSources = { + # Usually this would be trivial = ./src + # But we use this here to be able to test it + # in a derivation build + trivial = "/build/src"; + }; + }; +in +runCommand "env-test" { } '' + cp -r --no-preserve=mode ${./src} src + echo 'print("Changed")' > src/trivial/__main__.py + if [[ $(${env}/bin/python -m trivial) != "Changed" ]]; then + echo "Package wasn't editable!" + exit 1 + fi + touch $out +'' // { inherit env; } diff --git a/tests/editable/poetry.lock b/tests/editable/poetry.lock new file mode 100644 index 0000000..827902c --- /dev/null +++ b/tests/editable/poetry.lock @@ -0,0 +1,7 @@ +package = [] + +[metadata] +content-hash = "115cf985d932e9bf5f540555bbdd75decbb62cac81e399375fc19f6277f8c1d8" +python-versions = "*" + +[metadata.files] diff --git a/tests/editable/pyproject.toml b/tests/editable/pyproject.toml new file mode 100644 index 0000000..c968cf4 --- /dev/null +++ b/tests/editable/pyproject.toml @@ -0,0 +1,12 @@ +[tool.poetry] +name = "trivial" +version = "0.1.0" +description = "poetry2nix test" +authors = ["Your Name "] +packages = [ + { include = "trivial", from = "src" }, +] + +[build-system] +requires = ["poetry>=0.12"] +build-backend = "poetry.masonry.api" diff --git a/tests/editable/src/trivial/__main__.py b/tests/editable/src/trivial/__main__.py new file mode 100644 index 0000000..a0e40b6 --- /dev/null +++ b/tests/editable/src/trivial/__main__.py @@ -0,0 +1 @@ +print("Original")