86 lines
1.8 KiB
Nix
86 lines
1.8 KiB
Nix
|
{ 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 ];
|
||
|
};
|
||
|
}
|