"""Тесты команды generate_test_data.""" from apps.parsers.models import ( IndustrialCertificateRecord, IndustrialProductRecord, InspectionRecord, ManufacturerRecord, ParserLoadLog, ProcurementRecord, Proxy, ) from apps.registers.models import ( Organization, Register, RegisterUpload, RegistryMembershipPeriod, ) from django.core.management import call_command from django.test import TestCase class GenerateTestDataCommandTest(TestCase): """Проверки management command generate_test_data.""" def test_command_creates_data_for_every_registry(self): """Команда создаёт данные по всем целевым реестрам.""" call_command( "generate_test_data", count=2, registers_count=3, silent=True, verbosity=0, ) self.assertEqual(Register.objects.count(), 3) self.assertEqual(RegisterUpload.objects.count(), 6) self.assertEqual(RegistryMembershipPeriod.objects.count(), 6) self.assertEqual(Organization.objects.count(), 6) self.assertEqual(IndustrialCertificateRecord.objects.count(), 2) self.assertEqual(ManufacturerRecord.objects.count(), 2) self.assertEqual(IndustrialProductRecord.objects.count(), 2) self.assertEqual(InspectionRecord.objects.count(), 2) self.assertEqual(ProcurementRecord.objects.count(), 2) self.assertEqual(Proxy.objects.count(), 2) self.assertEqual( ParserLoadLog.objects.count(), len(ParserLoadLog.Source.values) * 2, ) def test_command_dry_run_rolls_back_everything(self): """В dry-run режиме все изменения откатываются.""" call_command( "generate_test_data", count=1, registers_count=1, dry_run=True, silent=True, verbosity=0, ) self.assertEqual(Register.objects.count(), 0) self.assertEqual(RegisterUpload.objects.count(), 0) self.assertEqual(RegistryMembershipPeriod.objects.count(), 0) self.assertEqual(Organization.objects.count(), 0) self.assertEqual(IndustrialCertificateRecord.objects.count(), 0) self.assertEqual(ManufacturerRecord.objects.count(), 0) self.assertEqual(IndustrialProductRecord.objects.count(), 0) self.assertEqual(InspectionRecord.objects.count(), 0) self.assertEqual(ProcurementRecord.objects.count(), 0) self.assertEqual(Proxy.objects.count(), 0) self.assertEqual(ParserLoadLog.objects.count(), 0)