about summary refs log tree commit diff
path: root/pkgs/development/python-modules/aiocache/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/aiocache/default.nix')
-rw-r--r--pkgs/development/python-modules/aiocache/default.nix54
1 files changed, 50 insertions, 4 deletions
diff --git a/pkgs/development/python-modules/aiocache/default.nix b/pkgs/development/python-modules/aiocache/default.nix
index fd4e5f3a154a3..5d78252791b30 100644
--- a/pkgs/development/python-modules/aiocache/default.nix
+++ b/pkgs/development/python-modules/aiocache/default.nix
@@ -1,8 +1,15 @@
 { lib
+, aiohttp
+, aiomcache
 , buildPythonPackage
 , fetchFromGitHub
+, marshmallow
 , msgpack
+, pkgs
 , pythonOlder
+, pytest-asyncio
+, pytest-mock
+, pytestCheckHook
 , redis
 , setuptools
 }:
@@ -21,21 +28,60 @@ buildPythonPackage rec {
     hash = "sha256-yvXDNJL8uxReaU81klVWudJwh1hmvg5GeeILcNpm/YA=";
   };
 
-  nativeBuildInputs = [
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace-fail "--cov=aiocache --cov=tests/ --cov-report term" ""
+  '';
+
+  build-system = [
     setuptools
   ];
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     redis = [
       redis
     ];
+    memcached = [
+      aiomcache
+    ];
     msgpack = [
       msgpack
     ];
   };
 
-  # aiomcache would be required but last release was in 2017
-  doCheck = false;
+  nativeCheckInputs = [
+    aiohttp
+    marshmallow
+    pytest-asyncio
+    pytest-mock
+    pytestCheckHook
+  ] ++ lib.flatten (lib.attrValues optional-dependencies);
+
+  pytestFlagsArray = [
+    "-W" "ignore::DeprecationWarning"
+    # TypeError: object MagicMock can't be used in 'await' expression
+    "--deselect=tests/ut/backends/test_redis.py::TestRedisBackend::test_close"
+  ];
+
+  disabledTests = [
+    # calls apache benchmark and fails, no usable output
+    "test_concurrency_error_rates"
+  ];
+
+  preCheck = ''
+    ${lib.getBin pkgs.redis}/bin/redis-server &
+    REDIS_PID=$!
+
+    ${lib.getBin pkgs.memcached}/bin/memcached &
+    MEMCACHED_PID=$!
+  '';
+
+  postCheck = ''
+    kill $REDIS_PID
+    kill $MEMCACHED_PID
+  '';
+
+  __darwinAllowLocalNetworking = true;
 
   pythonImportsCheck = [
     "aiocache"