about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix')
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix52
1 files changed, 48 insertions, 4 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix b/nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix
index d22096f91494..418225550167 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix
@@ -1,16 +1,60 @@
-{ lib, fetchPypi, buildPythonPackage, flask, limits }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, flask
+, flask-restful
+, hiro
+, limits
+, mock
+, ordereddict
+, pymemcache
+, pytestCheckHook
+, redis
+}:
 
 buildPythonPackage rec {
   pname = "Flask-Limiter";
   version = "1.4";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "021279c905a1e24f181377ab3be711be7541734b494f4e6db2b8edeba7601e48";
+  src = fetchFromGitHub {
+    owner = "alisaifee";
+    repo = "flask-limiter";
+    rev = version;
+    sha256 = "1k1b4b3s1acphqnar0y5g747bh1y7w35gcl5g819idq2a5vqnass";
   };
 
   propagatedBuildInputs = [ flask limits ];
 
+  checkInputs = [
+    pytestCheckHook
+    hiro
+    mock
+    redis
+    flask-restful
+    pymemcache
+    ordereddict
+  ];
+
+  postPatch = ''
+    sed -i "/--cov/d" pytest.ini
+  '';
+
+  # Some tests requires a local Redis instance
+  disabledTests = [
+    "test_fallback_to_memory"
+    "test_reset_unsupported"
+    "test_constructor_arguments_over_config"
+    "test_fallback_to_memory_config"
+    "test_fallback_to_memory_backoff_check"
+    "test_fallback_to_memory_with_global_override"
+    "test_custom_key_prefix"
+    "test_redis_request_slower_than_fixed_window"
+    "test_redis_request_slower_than_moving_window"
+    "test_custom_key_prefix_with_headers"
+  ];
+
+  pythonImportsCheck = [ "flask_limiter" ];
+
   meta = with lib; {
     description = "Rate limiting for flask applications";
     homepage = "https://flask-limiter.readthedocs.org/";