feat: expand registry ingestion and demo exchange
This commit is contained in:
104
tests/apps/parsers/test_parser_schedules.py
Normal file
104
tests/apps/parsers/test_parser_schedules.py
Normal file
@@ -0,0 +1,104 @@
|
||||
import importlib
|
||||
|
||||
from django.apps import apps
|
||||
from django.test import TestCase
|
||||
from django_celery_beat.models import CrontabSchedule, IntervalSchedule, PeriodicTask
|
||||
|
||||
schedule_migration = importlib.import_module(
|
||||
"apps.parsers.migrations.0025_consolidate_inspections_schedule"
|
||||
)
|
||||
|
||||
|
||||
class DefaultParserScheduleTest(TestCase):
|
||||
def test_inspections_have_one_canonical_sync_schedule(self):
|
||||
crontab = CrontabSchedule.objects.create(
|
||||
minute="0",
|
||||
hour="0",
|
||||
day_of_week="6",
|
||||
day_of_month="*",
|
||||
month_of_year="*",
|
||||
timezone="Europe/Moscow",
|
||||
)
|
||||
interval = IntervalSchedule.objects.create(
|
||||
every=7,
|
||||
period=IntervalSchedule.DAYS,
|
||||
)
|
||||
PeriodicTask.objects.create(
|
||||
name="parser:inspections:weekly-saturday-msk",
|
||||
task="apps.parsers.tasks.parse_inspections",
|
||||
crontab=crontab,
|
||||
enabled=True,
|
||||
)
|
||||
PeriodicTask.objects.create(
|
||||
name="parse-inspections-weekly",
|
||||
task="apps.parsers.tasks.parse_inspections",
|
||||
interval=interval,
|
||||
enabled=True,
|
||||
)
|
||||
PeriodicTask.objects.create(
|
||||
name="parser:sync_inspections:weekly-saturday-msk",
|
||||
task="apps.parsers.tasks.parse_inspections",
|
||||
args='["stale"]',
|
||||
kwargs='{"year": 2020}',
|
||||
crontab=crontab,
|
||||
enabled=True,
|
||||
)
|
||||
|
||||
schedule_migration.consolidate_inspections_schedule(apps, None)
|
||||
schedule_migration.consolidate_inspections_schedule(apps, None)
|
||||
|
||||
schedule_names = {
|
||||
"parser:inspections:weekly-saturday-msk",
|
||||
"parser:sync_inspections:weekly-saturday-msk",
|
||||
"parse-inspections-weekly",
|
||||
}
|
||||
|
||||
schedules = list(
|
||||
PeriodicTask.objects.filter(name__in=schedule_names)
|
||||
.order_by("name")
|
||||
.values_list("name", "task", "enabled", "args", "kwargs")
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
schedules,
|
||||
[
|
||||
(
|
||||
"parser:sync_inspections:weekly-saturday-msk",
|
||||
"apps.parsers.tasks.sync_inspections",
|
||||
True,
|
||||
"[]",
|
||||
"{}",
|
||||
)
|
||||
],
|
||||
)
|
||||
|
||||
def test_fns_weekly_schedule_runs_bounded_api_sync(self):
|
||||
fns_schedule_migration = importlib.import_module(
|
||||
"apps.parsers.migrations.0026_update_fns_financial_schedule"
|
||||
)
|
||||
interval = IntervalSchedule.objects.create(
|
||||
every=7,
|
||||
period=IntervalSchedule.DAYS,
|
||||
)
|
||||
PeriodicTask.objects.create(
|
||||
name="parser:fns_financial:weekly-saturday-msk",
|
||||
task="apps.parsers.tasks.scan_fns_directory",
|
||||
args='["stale"]',
|
||||
kwargs='{"stale": true}',
|
||||
interval=interval,
|
||||
enabled=True,
|
||||
)
|
||||
|
||||
fns_schedule_migration.update_fns_financial_schedule(apps, None)
|
||||
fns_schedule_migration.update_fns_financial_schedule(apps, None)
|
||||
|
||||
task = PeriodicTask.objects.get(name="parser:fns_financial:weekly-saturday-msk")
|
||||
self.assertEqual(
|
||||
task.task,
|
||||
"apps.parsers.tasks.sync_fns_financial_reports",
|
||||
)
|
||||
self.assertEqual(task.args, "[]")
|
||||
self.assertEqual(task.kwargs, "{}")
|
||||
self.assertTrue(task.enabled)
|
||||
self.assertIsNotNone(task.crontab_id)
|
||||
self.assertIsNone(task.interval_id)
|
||||
Reference in New Issue
Block a user