let flake = builtins.getFlake "${toString ../.}"; in { pkgs ? import flake.inputs.nixpkgs { config = { allowAliases = false; allowInsecurePredicate = x: true; }; overlays = [ flake.overlay ]; } }: let poetry = pkgs.callPackage ../pkgs/poetry { python = pkgs.python3; inherit poetry2nix; }; poetry2nix = import ./.. { inherit pkgs; }; poetryLib = import ../lib.nix { inherit pkgs; lib = pkgs.lib; stdenv = pkgs.stdenv; }; pep425 = pkgs.callPackage ../pep425.nix { inherit poetryLib; python = pkgs.python3; }; pep425PythonOldest = pkgs.callPackage ../pep425.nix { inherit poetryLib; python = pkgs.python38; }; pep425OSX = pkgs.callPackage ../pep425.nix { inherit poetryLib; isLinux = false; python = pkgs.python3; }; callTest = test: attrs: pkgs.callPackage test ({ inherit poetry2nix; } // attrs); inherit (pkgs) lib stdenv; in { trivial = callTest ./trivial { }; # Uses the updated Poetry 1.2.0 format trivial-poetry-1_2_0 = callTest ./trivial-poetry-1_2_0 { }; legacy = callTest ./legacy { }; composable-defaults = callTest ./composable-defaults { }; override = callTest ./override-support { }; override-default = callTest ./override-default-support { }; common-pkgs-1 = callTest ./common-pkgs-1 { }; common-pkgs-2 = callTest ./common-pkgs-2 { }; # pep425 = pkgs.callPackage ./pep425 { inherit pep425; inherit pep425OSX; inherit pep425PythonOldest; }; env = callTest ./env { }; pytest-metadata = callTest ./pytest-metadata { }; pytest-randomly = callTest ./pytest-randomly { }; file-src-deps = callTest ./file-src-deps { }; file-src-deps-level2 = callTest ./file-src-deps-level2 { }; file-wheel-deps = callTest ./file-wheel-deps { }; file-wheel-deps-level2 = callTest ./file-wheel-deps-level2 { }; git-deps = callTest ./git-deps { }; git-deps-1_2_0 = callTest ./git-deps-1_2_0 { }; git-deps-pinned = callTest ./git-deps-pinned { }; in-list = callTest ./in-list { }; path-deps = callTest ./path-deps { }; path-deps-develop = callTest ./path-deps-develop { }; path-deps-level2 = callTest ./path-deps-level2 { }; operators = callTest ./operators { }; preferWheel = callTest ./prefer-wheel { }; prefer-wheels = callTest ./prefer-wheels { }; closure-size = callTest ./closure-size { inherit poetry; inherit (pkgs) postgresql; }; extras = callTest ./extras { }; source-filter = callTest ./source-filter { }; canonical-module-names = callTest ./canonical-module-names { }; wandb = callTest ./wandb { }; utf8-pyproject = callTest ./utf8-pyproject { }; inherit (poetry2nix) cli; ansible-molecule = callTest ./ansible-molecule { }; bcrypt = callTest ./bcrypt { }; mk-poetry-packages = callTest ./mk-poetry-packages { }; markupsafe2 = callTest ./markupsafe2 { }; # uwsgi = callTest ./uwsgi { }; # Commented out because build is flaky (unrelated to poetry2nix) jq = callTest ./jq { }; ubersmith = callTest ./ubersmith { }; returns = callTest ./returns { }; option = callTest ./option { }; fastapi-utils = callTest ./fastapi-utils { }; awscli = callTest ./awscli { }; aiopath = callTest ./aiopath { }; fetched-projectdir = callTest ./fetched-projectdir { }; assorted-pkgs = callTest ./assorted-pkgs { }; watchfiles = callTest ./watchfiles { }; sqlalchemy = callTest ./sqlalchemy { }; sqlalchemy2 = callTest ./sqlalchemy2 { }; tzlocal = callTest ./tzlocal { }; ml-stack = callTest ./ml-stack { }; # Test building poetry inherit poetry; poetry-env = let env = poetry2nix.mkPoetryEnv { projectDir = ../pkgs/poetry; groups = [ "typing" ]; }; in pkgs.runCommand "poetry-env-test" { } '' ${env}/bin/python -c 'import requests' ${env}/bin/python -c 'import mypy' touch $out ''; dependency-groups = callTest ./dependency-groups { }; # And also test with pypy # poetry-pypy = poetry.override { python = pkgs.pypy; }; # poetry-pypy3 = poetry.override { python = pkgs.pypy3; }; jupyterlab-3 = callTest ./jupyterlab-3 { }; jupyterlab = callTest ./jupyterlab { }; # manylinux requires nixpkgs with https://github.com/NixOS/nixpkgs/pull/75763 # Once this is available in 19.09 and unstable we can re-enable the manylinux test manylinux = callTest ./manylinux { }; shapely = callTest ./shapely { }; shapely-pre-2 = callTest ./shapely-pre-2 { }; setuptools = callTest ./setuptools { }; affine = callTest ./affine { }; affine-pre-2-4 = callTest ./affine-pre-2-4 { }; gdal = callTest ./gdal { }; gitlint-core = callTest ./gitlint-core { }; gitlint = callTest ./gitlint { }; jupyter-ydoc = callTest ./jupyter-ydoc { }; mutmut = callTest ./mutmut { }; rasterio = callTest ./rasterio { }; scientific = callTest ./scientific { }; scipy1_9 = callTest ./scipy1_9 { }; test-group = callTest ./test-group { }; nbconvert-wheel = callTest ./nbconvert-wheel { }; duckdb-wheel = callTest ./duckdb-wheel { }; fiona-source = callTest ./fiona-source { }; fiona-wheel = callTest ./fiona-wheel { }; shapely-wheel = callTest ./shapely-wheel { }; cffi-pandas-wheel = callTest ./cffi-pandas-wheel { }; pyarrow-wheel = callTest ./pyarrow-wheel { }; mkdocstrings-wheel = callTest ./mkdocstrings-wheel { }; test-extras = callTest ./test-extras { }; test-no-extras = callTest ./test-no-extras { }; missing-iswheel = callTest ./missing-iswheel { }; wheel-wheel = callTest ./wheel-wheel { }; fancycompleter-wheel = callTest ./fancycompleter-wheel { }; matplotlib-pre-3-7 = callTest ./matplotlib-pre-3-7 { }; matplotlib-post-3-7 = callTest ./matplotlib-post-3-7 { }; rfc3986-validator = callTest ./rfc3986-validator { }; virtualenv-pre-20-18 = callTest ./virtualenv-pre-20-18 { }; virtualenv-post-20-18 = callTest ./virtualenv-post-20-18 { }; grpcio-wheel = callTest ./grpcio-wheel { }; panel-wheels = callTest ./panel-wheels { }; markdown-it-py-wheel = callTest ./markdown-it-py-wheel { }; cairocffi-wheel = callTest ./cairocffi-wheel { }; cairocffi-no-wheel = callTest ./cairocffi-no-wheel { }; rpds-py-wheel = callTest ./rpds-py-wheel { }; rpds-py-no-wheel = callTest ./rpds-py-no-wheel { }; contourpy-wheel = callTest ./contourpy-wheel { }; contourpy-no-wheel = callTest ./contourpy-no-wheel { }; } // lib.optionalAttrs (!stdenv.isDarwin) { # pyqt5 = (callTest ./pyqt5 { }); # Test deadlocks on darwin, sandboxing issue? dependency-environment = (callTest ./dependency-environment { }); # Editable tests fails on Darwin because of sandbox paths pep600 = (callTest ./pep600 { }); editable = (callTest ./editable { }); editable-egg = (callTest ./editable-egg { }); pendulum = (callTest ./pendulum { }); # Fails because of missing inputs on darwin text-generation-webui = callTest ./text-generation-webui { }; # Cross tests fail on darwin for some strange reason: # ERROR: MarkupSafe-2.0.1-cp39-cp39-linux_aarch64.whl is not a supported wheel on this platform. extended-cross = (callTest ./extended-cross { }); trivial-cross = (callTest ./trivial-cross { }); }