From 6e4eabeb4e1477229bc24941b55aaf0649451e76 Mon Sep 17 00:00:00 2001 From: lizerk Date: Thu, 5 Mar 2026 11:49:55 +0300 Subject: [PATCH] test: Configure Celery for integration tests and setup Redis - Add Celery synchronous execution settings for tests * CELERY_TASK_ALWAYS_EAGER = True (no separate worker needed) * CELERY_TASK_EAGER_PROPAGATES = True * Use memory broker/backend for tests - Add performance marker to pytest.ini * Allows marking tests with @pytest.mark.performance - Setup Redis server via systemd * Enabled redis-server.service for autostart * Redis runs on 127.0.0.1:6379 - Update .gitignore to exclude dump.rdb (Redis dump file) Integration tests status: - 26/47 tests passing (55%) - 21 tests failing due to missing NotificationType fixtures - Tests no longer hang (Celery executes synchronously) Note: Integration tests require NotificationType fixtures to be created before document operations trigger notification signals. --- .gitignore | 2 ++ backend/eusrr_backend/settings_test.py | 6 ++++++ backend/pytest.ini | 1 + 3 files changed, 9 insertions(+) diff --git a/.gitignore b/.gitignore index 035b3e4b..c6fcea70 100644 --- a/.gitignore +++ b/.gitignore @@ -109,6 +109,7 @@ celerybeat.pid # Environments .env .venv +.kali env/ venv/ ENV/ @@ -180,3 +181,4 @@ ooo.html # Test reports newman-report*.json *-report.json +dump.rdb diff --git a/backend/eusrr_backend/settings_test.py b/backend/eusrr_backend/settings_test.py index 5923d20d..5e085eb8 100644 --- a/backend/eusrr_backend/settings_test.py +++ b/backend/eusrr_backend/settings_test.py @@ -10,3 +10,9 @@ CHANNEL_LAYERS = { "BACKEND": "channels.layers.InMemoryChannelLayer" } } + +# Celery - синхронное выполнение в тестах (без отдельного worker) +CELERY_TASK_ALWAYS_EAGER = True +CELERY_TASK_EAGER_PROPAGATES = True +CELERY_BROKER_URL = 'memory://' +CELERY_RESULT_BACKEND = 'cache+memory://' diff --git a/backend/pytest.ini b/backend/pytest.ini index bb9d17d8..baa2e118 100644 --- a/backend/pytest.ini +++ b/backend/pytest.ini @@ -12,6 +12,7 @@ markers = integration: marks tests as integration tests slow: marks tests as slow running asyncio: marks tests as asynchronous tests + performance: marks tests as performance tests # Исключить manual tests по умолчанию addopts = -m "not manual" --strict-markers