summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoradisbladis <adisbladis@gmail.com>2020-03-14 16:16:20 +0000
committeradisbladis <adisbladis@gmail.com>2020-03-14 21:39:32 +0000
commit753122388d0080c8566872cb977f5841b22f1b4e (patch)
tree4fecda5dd322f0e085a6b07b79588f06874652ed
parent05571d3059deeecf5a10d2b85ec6a8f929d3e413 (diff)
Python: Add integration test verifying NIX_PYTHONPATH with Mypy
-rw-r--r--pkgs/development/interpreters/python/tests.nix11
-rw-r--r--pkgs/development/interpreters/python/tests/test_nix_pythonprefix/default.nix25
-rw-r--r--pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/default.nix11
-rw-r--r--pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/setup.py18
-rw-r--r--pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/__init__.py0
-rw-r--r--pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/py.typed0
-rw-r--r--pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/util.py2
7 files changed, 66 insertions, 1 deletions
diff --git a/pkgs/development/interpreters/python/tests.nix b/pkgs/development/interpreters/python/tests.nix
index a0f41610723b..55065c45d576 100644
--- a/pkgs/development/interpreters/python/tests.nix
+++ b/pkgs/development/interpreters/python/tests.nix
@@ -2,6 +2,7 @@
, runCommand
, substituteAll
, lib
+, callPackage
}:
let
@@ -50,6 +51,14 @@ let
# };
};
+ # All PyPy package builds are broken at the moment
+ integrationTests = lib.optionalAttrs (python.isPy3k && (!python.isPyPy)) rec {
+ # Before the addition of NIX_PYTHONPREFIX mypy was broken with typed packages
+ nix-pythonprefix-mypy = callPackage ./tests/test_nix_pythonprefix {
+ interpreter = python;
+ };
+ };
+
testfun = name: attrs: runCommand "${python.name}-tests-${name}" ({
inherit (python) pythonVersion;
} // attrs) ''
@@ -61,4 +70,4 @@ let
touch $out/success
'';
-in lib.mapAttrs testfun envs \ No newline at end of file
+in lib.mapAttrs testfun envs // integrationTests
diff --git a/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/default.nix b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/default.nix
new file mode 100644
index 000000000000..05798cbaf1b8
--- /dev/null
+++ b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/default.nix
@@ -0,0 +1,25 @@
+{ interpreter, writeText, runCommandNoCC }:
+
+let
+
+ python = let
+ packageOverrides = self: super: {
+ typeddep = super.callPackage ./typeddep {};
+ };
+ in interpreter.override {inherit packageOverrides; self = python;};
+
+ pythonEnv = python.withPackages(ps: [
+ ps.typeddep
+ ps.mypy
+ ]);
+
+ pythonScript = writeText "myscript.py" ''
+ from typeddep import util
+ s: str = util.echo("hello")
+ print(s)
+ '';
+
+in runCommandNoCC "${interpreter.name}-site-prefix-mypy-test" {} ''
+ ${pythonEnv}/bin/mypy ${pythonScript}
+ touch $out
+''
diff --git a/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/default.nix b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/default.nix
new file mode 100644
index 000000000000..06219a69fcaf
--- /dev/null
+++ b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/default.nix
@@ -0,0 +1,11 @@
+{ buildPythonPackage }:
+
+
+buildPythonPackage {
+
+ pname = "typeddep";
+ version = "1.3.3.7";
+
+ src = ./.;
+
+}
diff --git a/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/setup.py b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/setup.py
new file mode 100644
index 000000000000..25bac69ea09a
--- /dev/null
+++ b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/setup.py
@@ -0,0 +1,18 @@
+from setuptools import setup
+
+setup(**{
+ 'name': 'typeddep',
+ 'version': '1.3.3.7',
+ 'description': 'Minimal repro to test mypy and site prefixes with Nix',
+ 'long_description': None,
+ 'author': 'adisbladis',
+ 'author_email': 'adisbladis@gmail.com',
+ 'maintainer': None,
+ 'maintainer_email': None,
+ 'url': None,
+ 'packages': ['typeddep'],
+ 'package_data': {'': ['*']},
+ 'install_requires': [],
+ 'entry_points': {},
+ 'python_requires': '>=3.7,<4.0',
+})
diff --git a/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/__init__.py b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/__init__.py
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/__init__.py
diff --git a/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/py.typed b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/py.typed
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/py.typed
diff --git a/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/util.py b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/util.py
new file mode 100644
index 000000000000..c1c3ffe74777
--- /dev/null
+++ b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/util.py
@@ -0,0 +1,2 @@
+def echo(s: str) -> str:
+ return s