fix(parsers): make source jobs resumable
All checks were successful
CI/CD Pipeline / Quality Gate (push) Successful in 1m11s
CI/CD Pipeline / Build and Push Images (push) Successful in 19s
CI/CD Pipeline / Internal Notify (push) Successful in 0s
CI/CD Pipeline / Deploy Dev via Compose (push) Successful in 24s

This commit is contained in:
2026-08-14 17:02:56 +02:00
parent a0eb0a5303
commit 31eaa7e907
14 changed files with 884 additions and 476 deletions

View File

@@ -441,6 +441,31 @@ class SourceCardServiceDatabaseTest(TestCase):
def setUp(self):
SourceCardService.clear_cache()
def test_enqueue_vacancy_refresh_reuses_fresh_active_job(self):
existing = BackgroundJob.objects.create(
task_id="active-vacancies",
task_name="apps.parsers.tasks.parse_trudvsem_vacancies",
status=JobStatus.STARTED,
)
task = MagicMock()
result = SourceCardService._enqueue_task(
task=task,
task_name="apps.parsers.tasks.parse_trudvsem_vacancies",
requested_by_id=5,
meta={"source_card": "labor-vacancies"},
kwargs={"requested_by_id": 5},
)
self.assertEqual(
result,
{
"task_id": existing.task_id,
"task_name": existing.task_name,
},
)
task.apply_async.assert_not_called()
def test_defense_unreliable_suppliers_counts_unique_generic_organizations(self):
_save_source_record(
source=ParserLoadLog.Source.UNFAIR_SUPPLIERS,