depot/third_party/nixpkgs/pkgs/development/python-modules/flask-dramatiq/default.nix
Default email fa5436e0a7 Project import generated by Copybara.
GitOrigin-RevId: e8057b67ebf307f01bdcc8fba94d94f75039d1f6
2024-06-05 17:53:02 +02:00

86 lines
1.9 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 ];
};
}