feat: expand platform APIs, sources, and test coverage
Some checks failed
CI/CD Pipeline / Run Tests (pull_request) Successful in 1m53s
CI/CD Pipeline / Telegram Notify Success (push) Has been cancelled
CI/CD Pipeline / Run Tests (push) Has been cancelled
CI/CD Pipeline / Code Quality Checks (push) Has been cancelled
CI/CD Pipeline / Code Quality Checks (pull_request) Failing after 2m54s
CI/CD Pipeline / Telegram Notify Success (pull_request) Has been skipped
Some checks failed
CI/CD Pipeline / Run Tests (pull_request) Successful in 1m53s
CI/CD Pipeline / Telegram Notify Success (push) Has been cancelled
CI/CD Pipeline / Run Tests (push) Has been cancelled
CI/CD Pipeline / Code Quality Checks (push) Has been cancelled
CI/CD Pipeline / Code Quality Checks (pull_request) Failing after 2m54s
CI/CD Pipeline / Telegram Notify Success (pull_request) Has been skipped
This commit is contained in:
@@ -126,12 +126,12 @@ class ProcurementServiceSaveTestCase(TestCase):
|
||||
record = ProcurementRecord.objects.get(purchase_number=purchase_number)
|
||||
self.assertEqual(record.registry_organization_id, organization.id)
|
||||
|
||||
def test_save_ignores_duplicates(self):
|
||||
"""Дубликаты по purchase_number пропускаются."""
|
||||
def test_save_updates_duplicates(self):
|
||||
"""Повторная синхронизация обновляет существующую закупку."""
|
||||
# Создаём существующую запись
|
||||
purchase_number = _digits(19)
|
||||
ProcurementRecordFactory(purchase_number=purchase_number)
|
||||
initial_count = ProcurementRecord.objects.count()
|
||||
original = ProcurementRecord.objects.get(purchase_number=purchase_number)
|
||||
|
||||
# Пытаемся сохранить с тем же номером
|
||||
procurement = _build_procurement(
|
||||
@@ -139,13 +139,15 @@ class ProcurementServiceSaveTestCase(TestCase):
|
||||
customer_inn=_digits(10),
|
||||
)
|
||||
|
||||
ProcurementService.save_procurements([procurement], batch_id=2)
|
||||
saved = ProcurementService.save_procurements([procurement], batch_id=2)
|
||||
|
||||
# Дубликат пропущен - количество записей не изменилось
|
||||
self.assertEqual(ProcurementRecord.objects.count(), initial_count)
|
||||
# Оригинальная запись не была перезаписана
|
||||
original = ProcurementRecord.objects.get(purchase_number=purchase_number)
|
||||
self.assertNotEqual(original.customer_inn, procurement.customer_inn)
|
||||
# Существующая запись обновляется в пределах той же строки
|
||||
self.assertEqual(saved, 1)
|
||||
self.assertEqual(ProcurementRecord.objects.count(), 1)
|
||||
refreshed = ProcurementRecord.objects.get(purchase_number=purchase_number)
|
||||
self.assertEqual(refreshed.customer_inn, procurement.customer_inn)
|
||||
self.assertEqual(refreshed.load_batch, 2)
|
||||
self.assertEqual(refreshed.id, original.id)
|
||||
|
||||
def test_save_with_chunking(self):
|
||||
"""Сохранение большого количества записей чанками."""
|
||||
|
||||
Reference in New Issue
Block a user