diff options
Diffstat (limited to 'pkgs/development/python-modules/flask-dramatiq/default.nix')
-rw-r--r-- | pkgs/development/python-modules/flask-dramatiq/default.nix | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/flask-dramatiq/default.nix b/pkgs/development/python-modules/flask-dramatiq/default.nix new file mode 100644 index 00000000000..6f8884516f4 --- /dev/null +++ b/pkgs/development/python-modules/flask-dramatiq/default.nix @@ -0,0 +1,85 @@ +{ lib +, buildPythonPackage +, pythonOlder +, fetchFromGitLab +, poetry-core +, dramatiq +, flask +, requests +, pytestCheckHook +, flask-migrate +, periodiq +, postgresql +, postgresqlTestHook +, psycopg2 +}: + +buildPythonPackage { + pname = "flask-dramatiq"; + version = "0.6.0"; + format = "pyproject"; + + disabled = pythonOlder "3.6"; + + src = fetchFromGitLab { + owner = "bersace"; + repo = "flask-dramatiq"; + rev = "840209e9bf582b4dda468e8bba515f248f3f8534"; + hash = "sha256-qjV1zyVzHPXMt+oUeGBdP9XVlbcSz2MF9Zygj543T4w="; + }; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace 'poetry>=0.12' 'poetry-core' \ + --replace 'poetry.masonry.api' 'poetry.core.masonry.api' + + patchShebangs --build ./example.py + + sed -i ./tests/unit/pytest.ini \ + -e 's:--cov=flask_dramatiq::' \ + -e 's:--cov-report=term-missing::' + ''; + + nativeBuildInputs = [ + poetry-core + ]; + + propagatedBuildInputs = [ + dramatiq + ]; + + nativeCheckInputs = [ + pytestCheckHook + flask + requests + flask-migrate + periodiq + postgresql + postgresqlTestHook + psycopg2 + ] ++ dramatiq.optional-dependencies.rabbitmq; + + postgresqlTestSetupPost = '' + substituteInPlace config.py \ + --replace 'SQLALCHEMY_DATABASE_URI = f"postgresql://{PGUSER}:{PGPASSWORD}@{PGHOST}/{PGDATABASE}"' \ + "SQLALCHEMY_DATABASE_URI = \"postgresql://$PGUSER/$PGDATABASE?host=$PGHOST\"" + python3 ./example.py db upgrade + ''; + + pytestFlagsArray = [ "-x" "tests/func/" "tests/unit"]; + + pythonImportsCheck = [ "flask_dramatiq" ]; + + # Does HTTP requests to localhost + disabledTests = [ + "test_fast" + "test_other" + ]; + + meta = with lib; { + description = "Adds Dramatiq support to your Flask application"; + homepage = "https://gitlab.com/bersace/flask-dramatiq"; + license = licenses.bsd3; + maintainers = with maintainers; [ traxys ]; + }; +} |