33afbf39f6
checkInputs used to be added to nativeBuildInputs. Now we have nativeCheckInputs to do that instead. Doing this treewide change allows to keep hashes identical to before the introduction of nativeCheckInputs.
95 lines
2.6 KiB
Nix
95 lines
2.6 KiB
Nix
{ stdenv
|
|
, lib
|
|
, buildPythonPackage
|
|
, fetchFromGitHub
|
|
, pythonOlder
|
|
, python
|
|
, py-multiaddr
|
|
, requests
|
|
, pytestCheckHook
|
|
, pytest-cov
|
|
, pytest-dependency
|
|
, pytest-localserver
|
|
, pytest-mock
|
|
, pytest-order
|
|
, pytest-cid
|
|
, mock
|
|
, kubo
|
|
, httpx
|
|
, httpcore
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
pname = "ipfshttpclient";
|
|
version = "0.8.0a2";
|
|
format = "flit";
|
|
disabled = pythonOlder "3.6";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "ipfs-shipyard";
|
|
repo = "py-ipfs-http-client";
|
|
rev = version;
|
|
sha256 = "sha256-OmC67pN2BbuGwM43xNDKlsLhwVeUbpvfOazyIDvoMEA=";
|
|
};
|
|
|
|
propagatedBuildInputs = [
|
|
py-multiaddr
|
|
requests
|
|
];
|
|
|
|
nativeCheckInputs = [
|
|
pytestCheckHook
|
|
pytest-cov
|
|
pytest-dependency
|
|
pytest-localserver
|
|
pytest-mock
|
|
pytest-order
|
|
pytest-cid
|
|
mock
|
|
kubo
|
|
httpcore
|
|
httpx
|
|
];
|
|
|
|
postPatch = ''
|
|
# This can be removed for the 0.8.0 release
|
|
# Use pytest-order instead of pytest-ordering since the latter is unmaintained and broken
|
|
substituteInPlace test/run-tests.py \
|
|
--replace 'pytest_ordering' 'pytest_order'
|
|
substituteInPlace test/functional/test_miscellaneous.py \
|
|
--replace '@pytest.mark.last' '@pytest.mark.order("last")'
|
|
|
|
# Until a proper fix is created, just skip these tests
|
|
# and ignore any breakage that may result from the API change in IPFS
|
|
# See https://github.com/ipfs-shipyard/py-ipfs-http-client/issues/308
|
|
substituteInPlace test/functional/test_pubsub.py \
|
|
--replace '# the message that will be published' 'pytest.skip("This test fails because of an incompatibility with the experimental PubSub feature in IPFS>=0.11.0")' \
|
|
--replace '# subscribe to the topic testing' 'pytest.skip("This test fails because of an incompatibility with the experimental PubSub feature in IPFS>=0.11.0")'
|
|
substituteInPlace test/functional/test_other.py \
|
|
--replace 'import ipfshttpclient' 'import ipfshttpclient; import pytest' \
|
|
--replace 'assert ipfs_is_available' 'pytest.skip("Unknown test failure with IPFS >=0.11.0"); assert ipfs_is_available'
|
|
substituteInPlace test/run-tests.py \
|
|
--replace '--cov-fail-under=90' '--cov-fail-under=75'
|
|
'';
|
|
|
|
checkPhase = ''
|
|
runHook preCheck
|
|
|
|
${python.interpreter} -X utf8 test/run-tests.py
|
|
|
|
runHook postCheck
|
|
'';
|
|
|
|
doCheck = false;
|
|
|
|
pythonImportsCheck = [ "ipfshttpclient" ];
|
|
|
|
meta = with lib; {
|
|
broken = stdenv.isDarwin;
|
|
description = "A python client library for the IPFS API";
|
|
homepage = "https://github.com/ipfs-shipyard/py-ipfs-http-client";
|
|
license = licenses.mit;
|
|
maintainers = with maintainers; [ mguentner Luflosi ];
|
|
};
|
|
}
|