Как протестировать создание задачи в django_q

Задача протестить, что в задачах всегда только 1 такой планировщик

settings.py

Q_CLUSTER = {
    'name': 'Testname',
    'workers': 2,
    'timeout': 90,
    'retry': 120,
    'queue_limit': 50,
    'bulk': 10,
    'orm': 'default',
    'sync': True, # для тестов на локалке синхронно
}

app_batches.apps.py

from django.apps import AppConfig


class AppBatchesConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'app_batches'

    def ready(self):
        from . import schedules

app_batches.schedules.py

from .models import Batches
from django.utils import timezone
from django_q.models import Schedule
from django_q.tasks import schedule


'''Создаёт задачу планировщику раз в день проверять срок годности партий в 01:00 '''
if not Schedule.objects.filter(func='app_batches.schedules.check_expiration_of_batches'):
    schedule('app_batches.schedules.check_expiration_of_batches',
                         name='Check expiration of Batches',
                         schedule_type=Schedule.DAILY,
                         next_run=timezone.now().replace(hour=1,minute=0),
                         )
print('scheduler=',Schedule.objects.filter(func='app_batches.schedules.check_expiration_of_batches').count())

def check_expiration_of_batches():
    '''Раз в день проверяет, не истёк ли срок годности партий'''
    expirated_batches = Batches.objects.exclude(status='expiration').filter(storages__amount__gt=0,
                                                                            expiration_date__lte=timezone.now())
    for batch in expirated_batches:
        batch.status = 'expiration'
        batch.save(update_fields=['status'])

app_batches.tests_scheduler.py

from django.test import TestCase
from django_q.models import Schedule

class SchedulersTestCase(TestCase):

    def test_task(self):
        schedules = Schedule.objects.filter(func='app_batches.schedules.check_expiration_of_batches')
        self.assertEqual(schedules.count(),1)
        schedule = schedules.first()
        self.assertEqual(schedule.name,'Check expiration of Batches')
        self.assertEqual(schedule.schedule_type, Schedule.DAILY)
        self.assertEqual(schedule.next_run.hour, 1)
        self.assertEqual(schedule.next_run.minute, 0)

При запуске теста даёт ошибку, хотя показывает, что 1 планировщик таки есть. И в админке он показывается и тоже в 1 экземпляре, то есть код работает, но почему на тесте его уже нет?

PS D:\Python310\qms_env\qms> py manage.py test app_batches.tests_scheduler
scheduler= 1
Found 1 test(s).
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
F
======================================================================
FAIL: test_task (app_batches.tests_scheduler.SchedulersTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\Python310\qms_env\qms\app_batches\tests_scheduler.py", line 29, in test_task
    self.assertEqual(schedules.count(),1)
AssertionError: 0 != 1

----------------------------------------------------------------------
Ran 1 test in 0.003s

FAILED (failures=1)

Ответы (0 шт):