diff --git a/Cargo.toml b/Cargo.toml index 1be466c..a5195c1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,7 +31,7 @@ classifier = [ "Programming Language :: Python :: 3 :: Only", "Operating System :: OS Independent" ] -requires-dist = ["click>=7", "celery>=4,<5", "prometheus_client>=0.0.20"] +requires-dist = ["click>=7", "celery>=4,<6", "prometheus_client>=0.0.20"] [package.metadata.maturin.scripts] celery-exporter = "celery_exporter.__main__:main" diff --git a/Dockerfile b/Dockerfile index 4df218d..1418cf6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -48,7 +48,7 @@ WORKDIR /app/ COPY --from=build-rs /src/wheelhouse/ /app/wheelhouse/ COPY requirements/ ./requirements -RUN pip install -r ./requirements/requirements.txt +RUN pip install -r ./requirements/requirements_celery4.txt RUN pip install wheelhouse/* diff --git a/requirements/base.txt b/requirements/base.txt index 408f319..818f101 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,3 +1,3 @@ -Click==7.0 -prometheus-client==0.7.0 -redis==3.2.0 +click==7.1.2 +prometheus-client==0.10.1 +redis==3.5.3 diff --git a/requirements/requirements.txt b/requirements/requirements.txt deleted file mode 100644 index 0ee5b29..0000000 --- a/requirements/requirements.txt +++ /dev/null @@ -1,7 +0,0 @@ --r base.txt -amqp==2.4.2 -billiard==3.5.0.5 -celery==4.2.1 -kombu==4.4.0 -pytz==2018.9 -vine==1.3.0 diff --git a/requirements/requirements_celery.txt b/requirements/requirements_celery.txt new file mode 100644 index 0000000..a3ac4a2 --- /dev/null +++ b/requirements/requirements_celery.txt @@ -0,0 +1,3 @@ +-r base.txt +billiard==3.6.4.0 +pytz==2021.1 diff --git a/requirements/requirements_celery4.txt b/requirements/requirements_celery4.txt new file mode 100644 index 0000000..e51eb33 --- /dev/null +++ b/requirements/requirements_celery4.txt @@ -0,0 +1,4 @@ +-r requirements_celery.txt +celery==4.4.7 +kombu==4.6.11 +vine==1.3.0 diff --git a/requirements/requirements_celery5.txt b/requirements/requirements_celery5.txt new file mode 100644 index 0000000..9260a26 --- /dev/null +++ b/requirements/requirements_celery5.txt @@ -0,0 +1,4 @@ +-r requirements_celery.txt +celery==5.0.5 +kombu==5.0.2 +vine==5.0.0 diff --git a/requirements/requirements_test.txt b/requirements/requirements_test.txt index 92f32d0..7c9c240 100644 --- a/requirements/requirements_test.txt +++ b/requirements/requirements_test.txt @@ -1,4 +1,4 @@ --r base.txt +-r requirements_celery.txt astroid==2.2.5 atomicwrites==1.3.0 attrs==19.1.0 diff --git a/test/test_func.py b/test/test_func.py index 9b0faf3..07bd181 100644 --- a/test/test_func.py +++ b/test/test_func.py @@ -4,6 +4,7 @@ import celery import celery_exporter.monitor from celery_exporter.core import CeleryExporter +from celery.app.control import Inspect prom_http_server_mock = MagicMock(return_value=None) setup_metrics_mock = MagicMock(return_value=None) @@ -12,7 +13,7 @@ event_thread_mock = MagicMock(spec=celery_exporter.monitor.EnableEventsThread) -@patch("celery.task.control.inspect.registered_tasks", {"worker1": [BaseTest.task]}) +@patch.object(Inspect, "registered_tasks", {"worker1": [BaseTest.task]}) @patch( "celery_exporter.core.prometheus_client.start_http_server", prom_http_server_mock ) diff --git a/test/test_unit.py b/test/test_unit.py index 1f6afc8..b03c9dc 100644 --- a/test/test_unit.py +++ b/test/test_unit.py @@ -24,8 +24,10 @@ class TestMockedCelery(BaseTest): def setUp(self): self.app = get_celery_app() - with patch("celery.task.control.inspect.conf") as tasks: - with patch("celery.task.control.inspect.registered_tasks") as registered: + with patch.object(celery.app.control.Inspect, "conf") as tasks: + with patch.object( + celery.app.control.Inspect, "registered_tasks" + ) as registered: tasks.return_value = { "celery@d6f95e9e24fc": { "task_routes": {"my_task": {}, "trial": {"queue": "deadbeef"}} diff --git a/tox.ini b/tox.ini index f31b1b7..aaf5117 100644 --- a/tox.ini +++ b/tox.ini @@ -7,11 +7,12 @@ whitelist_externals = cargo deps = py36: black==19.3b0 -rrequirements/requirements_test.txt - -rrequirements/requirements.txt + celery4: -rrequirements/requirements_celery4.txt + celery5: -rrequirements/requirements_celery5.txt maturin==0.8.3 commands = py36: black . --check - maturin develop + maturin develop coverage run -m py.test {toxinidir}/test/ coverage report