diff --git a/pkgs/development/python-modules/cherrypy/default.nix b/pkgs/development/python-modules/cherrypy/default.nix index 51c8b62c9716..903be65bf068 100644 --- a/pkgs/development/python-modules/cherrypy/default.nix +++ b/pkgs/development/python-modules/cherrypy/default.nix @@ -2,6 +2,7 @@ , stdenv , buildPythonPackage , cheroot +, fetchpatch , fetchPypi , jaraco-collections , more-itertools @@ -24,23 +25,34 @@ buildPythonPackage rec { pname = "cherrypy"; - version = "18.8.0"; - format = "setuptools"; + version = "18.9.0"; + pyproject = true; disabled = pythonOlder "3.7"; src = fetchPypi { pname = "CherryPy"; inherit version; - hash = "sha256-m0jPuoovFtW2QZzGV+bVHbAFujXF44JORyi7A7vH75s="; + hash = "sha256-awbBkc5xqGRh8wVyoatX/8CfQxQ7qOQsEDx7M0ciDrE="; }; + patches = [ + # Replace distutils.spawn.find_executable with shutil.which, https://github.com/cherrypy/cherrypy/pull/2023 + (fetchpatch { + name = "remove-distutils.patch"; + url = "https://github.com/cherrypy/cherrypy/commit/8a19dd5f1e712a326a3613b17e6fc900012ed09a.patch"; + hash = "sha256-fXECX0CdU74usiq9GEkIG9CF+dueszblT4qOeF6B700="; + }) + ]; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail '"setuptools_scm_git_archive >= 1.1",' "" # Disable doctest plugin because times out substituteInPlace pytest.ini \ - --replace "--doctest-modules" "-vvv" \ - --replace "-p pytest_cov" "" \ - --replace "--no-cov-on-fail" "" + --replace-fail "--doctest-modules" "-vvv" \ + --replace-fail "-p pytest_cov" "" \ + --replace-fail "--no-cov-on-fail" "" sed -i "/--cov/d" pytest.ini ''; @@ -50,10 +62,10 @@ buildPythonPackage rec { propagatedBuildInputs = [ cheroot - portend - more-itertools - zc-lockfile jaraco-collections + more-itertools + portend + zc-lockfile ]; nativeCheckInputs = [ @@ -126,6 +138,7 @@ buildPythonPackage rec { meta = with lib; { description = "Object-oriented HTTP framework"; homepage = "https://cherrypy.dev/"; + changelog = "https://github.com/cherrypy/cherrypy/blob/v${version}/CHANGES.rst"; license = licenses.bsd3; maintainers = with maintainers; [ ]; }; diff --git a/pkgs/development/python-modules/pytest-services/default.nix b/pkgs/development/python-modules/pytest-services/default.nix index 91094c81ab41..0b6a8f8f87b5 100644 --- a/pkgs/development/python-modules/pytest-services/default.nix +++ b/pkgs/development/python-modules/pytest-services/default.nix @@ -1,25 +1,43 @@ { lib , buildPythonPackage -, fetchPypi -, isPy3k -, requests +, fetchFromGitHub +, fetchpatch , psutil +, pylibmc , pytest +, pytestCheckHook +, pythonOlder +, requests +, setuptools , setuptools-scm , toml +, mysqlclient , zc-lockfile }: buildPythonPackage rec { pname = "pytest-services"; version = "2.2.1"; - format = "setuptools"; + pyproject = true; - src = fetchPypi { - inherit pname version; - sha256 = "2da740487d08ea63dfdf718f5d4ba11e590c99ddf5481549edebf7a3a42ca536"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "pytest-dev"; + repo = "pytest-services"; + rev = "refs/tags/${version}"; + hash = "sha256-E/VcKcAb1ekypm5jP4lsSz1LYJTcTSed6i5OY5ihP30="; }; + patches = [ + # Replace distutils.spawn.find_executable with shutil.which, https://github.com/pytest-dev/pytest-services/pull/46 + (fetchpatch { + name = "replace-distutils.patch"; + url = "https://github.com/pytest-dev/pytest-services/commit/e0e2a85434a2dcbcc0584299c5b2b751efe0b6db.patch"; + hash = "sha256-hvr7EedfjfonHDn6v2slwUBqz1xQoF7Ez/kqAhZRXEc="; + }) + ]; + nativeBuildInputs = [ setuptools-scm toml @@ -33,14 +51,27 @@ buildPythonPackage rec { zc-lockfile ]; - # no tests in PyPI tarball - doCheck = false; + nativeCheckInputs = [ + mysqlclient + pylibmc + pytestCheckHook + ]; - pythonImportsCheck = [ "pytest_services" ]; + pythonImportsCheck = [ + "pytest_services" + ]; + + disabledTests = [ + # Tests require binaries and additional parts + "test_memcached" + "test_mysql" + "test_xvfb " + ]; meta = with lib; { description = "Services plugin for pytest testing framework"; homepage = "https://github.com/pytest-dev/pytest-services"; + changelog = "https://github.com/pytest-dev/pytest-services/blob/${version}/CHANGES.rst"; license = licenses.mit; maintainers = with maintainers; [ dotlambda ]; };