Chciałbym wykonywać synchronizację zadań selera podczas moich testów Django bez konieczności uruchamiania selera. Aby to osiągnąć, podałem plik CELERY_ALWAYS_EAGER=True
w moim pliku settings.py, ale wygląda na to, że nie działa. Więc postanowiłem zastosować override_settings dekorator do konkretnego testu, który wygląda takNie można wywołać zadania selera w testach Django synchronicznie
@override_settings(CELERY_ALWAYS_EAGER=True, BROKER_BACKEND='memory',
CELERY_EAGER_PROPAGATES_EXCEPTIONS=True)
def test_foo(self):
...
Niestety, badanie to wciąż wywołuje zadanie w moim pracownikiem selera. Czego może mi brakować? Mówiąc konkretnie, używam Django 1.10 z programem Celery 4.0.0.
Jeśli seler odpowiednie ustawienia są zachowywane na jakimś obiekcie w pamięci w aplikacji selera na starcie twojego biegacza testowego, ich przesłonięcie może nie przynieść efektu. Czy próbowałeś uruchomić swój biegacz testowy z innym plikiem ustawień z wybranymi ustawieniami? – schwobaseggl
To wydaje się być znanym problemem. Dyskusja na ten temat (https://groups.google.com/forum/#!topic/celery-users/1WmrfFZ9nHs). Zmieniają ustawienie w czasie wykonywania na obiekcie 'celery.Cellery(). Conf', a nie na typowym' django.conf' – schwobaseggl