Merge pull request #120881 from AluisioASG/aasg/sanic-routing
python3Packages.sanic: 21.3.2 -> 21.3.4; fix tests
This commit is contained in:
commit
dc68eb58bb
5 changed files with 104 additions and 17 deletions
|
@ -46,5 +46,9 @@ buildPythonPackage rec {
|
||||||
homepage = "https://github.com/yunstanford/pytest-sanic/";
|
homepage = "https://github.com/yunstanford/pytest-sanic/";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
maintainers = [ maintainers.costrouc ];
|
maintainers = [ maintainers.costrouc ];
|
||||||
|
# pytest-sanic is incompatible with Sanic 21.3, see
|
||||||
|
# https://github.com/sanic-org/sanic/issues/2095 and
|
||||||
|
# https://github.com/yunstanford/pytest-sanic/issues/50.
|
||||||
|
broken = lib.versionAtLeast sanic.version "21.3.0";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
28
pkgs/development/python-modules/sanic-routing/default.nix
Normal file
28
pkgs/development/python-modules/sanic-routing/default.nix
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchFromGitHub
|
||||||
|
, pytestCheckHook
|
||||||
|
, pytest-asyncio
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "sanic-routing";
|
||||||
|
version = "0.6.2";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "sanic-org";
|
||||||
|
repo = "sanic-routing";
|
||||||
|
rev = "v${version}";
|
||||||
|
hash = "sha256-ZMl8PB9E401pUfUJ4tW7nBx1TgPQQtx9erVni3zP+lo=";
|
||||||
|
};
|
||||||
|
|
||||||
|
checkInputs = [ pytestCheckHook pytest-asyncio ];
|
||||||
|
pythonImportsCheck = [ "sanic_routing" ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Core routing component for the Sanic web framework";
|
||||||
|
homepage = "https://github.com/sanic-org/sanic-routing";
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = with maintainers; [ AluisioASG ];
|
||||||
|
};
|
||||||
|
}
|
40
pkgs/development/python-modules/sanic-testing/default.nix
Normal file
40
pkgs/development/python-modules/sanic-testing/default.nix
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchFromGitHub
|
||||||
|
, pytestCheckHook
|
||||||
|
, httpcore
|
||||||
|
, httpx
|
||||||
|
, pytest-asyncio
|
||||||
|
, sanic
|
||||||
|
, websockets
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "sanic-testing";
|
||||||
|
version = "0.3.1";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "sanic-org";
|
||||||
|
repo = "sanic-testing";
|
||||||
|
rev = "v${version}";
|
||||||
|
hash = "sha256-hBAq+/BKs0a01M89Nb8HaClqxB+W5PTfjVzef/m9SWs=";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ httpx sanic websockets httpcore ];
|
||||||
|
|
||||||
|
# `sanic` is explicitly set to null when building `sanic` itself
|
||||||
|
# to prevent infinite recursion. In that case we skip running
|
||||||
|
# the package at all.
|
||||||
|
doCheck = sanic != null;
|
||||||
|
dontUsePythonImportsCheck = sanic == null;
|
||||||
|
|
||||||
|
checkInputs = [ pytestCheckHook pytest-asyncio ];
|
||||||
|
pythonImportsCheck = [ "sanic_testing" ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Core testing clients for the Sanic web framework";
|
||||||
|
homepage = "https://github.com/sanic-org/sanic-testing";
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = with maintainers; [ AluisioASG ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,42 +1,44 @@
|
||||||
{ lib, buildPythonPackage, fetchPypi, doCheck ? true
|
{ lib, buildPythonPackage, fetchPypi, doCheck ? true
|
||||||
, aiofiles, httptools, httpx, multidict, ujson, uvloop, websockets
|
, aiofiles, httptools, multidict, sanic-routing, ujson, uvloop, websockets
|
||||||
, pytestCheckHook, beautifulsoup4, gunicorn, httpcore, uvicorn
|
, pytestCheckHook, beautifulsoup4, gunicorn, uvicorn, sanic-testing
|
||||||
, pytest-asyncio, pytest-benchmark, pytest-dependency, pytest-sanic, pytest-sugar, pytestcov
|
, pytest-benchmark, pytest-sanic, pytest-sugar, pytestcov
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "sanic";
|
pname = "sanic";
|
||||||
version = "21.3.2";
|
version = "21.3.4";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "84a04c5f12bf321bed3942597787f1854d15c18f157aebd7ced8c851ccc49e08";
|
sha256 = "1cbd12b9138b3ca69656286b0be91fff02b826e8cb72dd76a2ca8c5eb1288d8e";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
# Loosen dependency requirements.
|
||||||
substituteInPlace setup.py \
|
substituteInPlace setup.py \
|
||||||
--replace '"multidict==5.0.0"' '"multidict"' \
|
--replace '"pytest==5.2.1"' '"pytest"' \
|
||||||
--replace '"httpx==0.15.4"' '"httpx"' \
|
--replace '"gunicorn==20.0.4"' '"gunicorn"' \
|
||||||
--replace '"httpcore==0.3.0"' '"httpcore"' \
|
--replace '"pytest-sanic",' ""
|
||||||
--replace '"pytest==5.2.1"' '"pytest"'
|
# Patch a request headers test to allow brotli encoding
|
||||||
|
# (we build httpx with brotli support, upstream doesn't).
|
||||||
|
substituteInPlace tests/test_headers.py \
|
||||||
|
--replace "deflate\r\n" "deflate, br\r\n"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
aiofiles httptools httpx multidict ujson uvloop websockets
|
sanic-routing httptools uvloop ujson aiofiles websockets multidict
|
||||||
];
|
];
|
||||||
|
|
||||||
checkInputs = [
|
checkInputs = [
|
||||||
pytestCheckHook beautifulsoup4 gunicorn httpcore uvicorn
|
sanic-testing gunicorn pytestcov beautifulsoup4 pytest-sanic pytest-sugar
|
||||||
pytest-asyncio pytest-benchmark pytest-dependency pytest-sanic pytest-sugar pytestcov
|
pytest-benchmark pytestCheckHook uvicorn
|
||||||
];
|
];
|
||||||
|
|
||||||
inherit doCheck;
|
inherit doCheck;
|
||||||
|
|
||||||
disabledTests = [
|
disabledTests = [
|
||||||
"test_gunicorn" # No "examples" directory in pypi distribution.
|
"test_gunicorn" # No "examples" directory in pypi distribution.
|
||||||
"test_logo" # Fails to filter out "DEBUG asyncio:selector_events.py:59 Using selector: EpollSelector"
|
|
||||||
"test_zero_downtime" # No "examples.delayed_response.app" module in pypi distribution.
|
"test_zero_downtime" # No "examples.delayed_response.app" module in pypi distribution.
|
||||||
"test_reloader_live" # OSError: [Errno 98] error while attempting to bind on address ('127.0.0.1', 42104)
|
|
||||||
];
|
];
|
||||||
|
|
||||||
__darwinAllowLocalNetworking = true;
|
__darwinAllowLocalNetworking = true;
|
||||||
|
@ -45,8 +47,8 @@ buildPythonPackage rec {
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A microframework based on uvloop, httptools, and learnings of flask";
|
description = "A microframework based on uvloop, httptools, and learnings of flask";
|
||||||
homepage = "https://github.com/channelcat/sanic/";
|
homepage = "https://github.com/sanic-org/sanic/";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = [ maintainers.costrouc ];
|
maintainers = with maintainers; [ costrouc AluisioASG ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -7195,9 +7195,22 @@ in {
|
||||||
|
|
||||||
samsungtvws = callPackage ../development/python-modules/samsungtvws { };
|
samsungtvws = callPackage ../development/python-modules/samsungtvws { };
|
||||||
|
|
||||||
|
sanic = callPackage ../development/python-modules/sanic {
|
||||||
|
# pytest-sanic is doing ok for the sole purpose of testing Sanic.
|
||||||
|
pytest-sanic = self.pytest-sanic.overridePythonAttrs (oldAttrs: {
|
||||||
|
doCheck = false;
|
||||||
|
meta.broken = false;
|
||||||
|
});
|
||||||
|
# Don't pass any `sanic` to avoid dependency loops. `sanic-testing`
|
||||||
|
# has special logic to disable tests when this is the case.
|
||||||
|
sanic-testing = self.sanic-testing.override { sanic = null; };
|
||||||
|
};
|
||||||
|
|
||||||
sanic-auth = callPackage ../development/python-modules/sanic-auth { };
|
sanic-auth = callPackage ../development/python-modules/sanic-auth { };
|
||||||
|
|
||||||
sanic = callPackage ../development/python-modules/sanic { };
|
sanic-routing = callPackage ../development/python-modules/sanic-routing { };
|
||||||
|
|
||||||
|
sanic-testing = callPackage ../development/python-modules/sanic-testing { };
|
||||||
|
|
||||||
sapi-python-client = callPackage ../development/python-modules/sapi-python-client { };
|
sapi-python-client = callPackage ../development/python-modules/sapi-python-client { };
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue