1{
2 lib,
3 buildPythonPackage,
4 celery,
5 debugpy,
6 docker,
7 fetchFromGitHub,
8 kombu,
9 poetry-core,
10 psutil,
11 pytest-docker-tools,
12 pytest,
13 pythonOlder,
14 setuptools,
15 tenacity,
16}:
17
18buildPythonPackage rec {
19 pname = "pytest-celery";
20 version = "1.2.1";
21 pyproject = true;
22
23 disabled = pythonOlder "3.8";
24
25 src = fetchFromGitHub {
26 owner = "celery";
27 repo = "pytest-celery";
28 tag = "v${version}";
29 hash = "sha256-E8GO/00IC9kUvQLZmTFaK4FFQ7d+/tw/kVTQbAqRRRM=";
30 };
31
32 postPatch = ''
33 # Avoid infinite recursion with celery
34 substituteInPlace pyproject.toml \
35 --replace 'celery = { version = "*" }' ""
36 '';
37
38 pythonRelaxDeps = [
39 "debugpy"
40 "setuptools"
41 ];
42
43 build-system = [ poetry-core ];
44
45 buildInput = [ pytest ];
46
47 dependencies = [
48 (celery.overridePythonAttrs { doCheck = false; })
49 debugpy
50 docker
51 kombu
52 psutil
53 pytest-docker-tools
54 setuptools
55 tenacity
56 ];
57
58 # Infinite recursion with celery
59 doCheck = false;
60
61 meta = with lib; {
62 description = "Pytest plugin to enable celery.contrib.pytest";
63 homepage = "https://github.com/celery/pytest-celery";
64 changelog = "https://github.com/celery/pytest-celery/blob/${src.tag}/Changelog.rst";
65 license = licenses.mit;
66 maintainers = [ ];
67 };
68}