feat: import mostovik exchange sections
All checks were successful
CI/CD Pipeline / Run Tests (push) Successful in 6m12s
CI/CD Pipeline / Code Quality Checks (push) Successful in 6m19s
CI/CD Pipeline / Build Docker Images (push) Successful in 2m21s
CI/CD Pipeline / Push to Gitea Registry (push) Successful in 1s
CI/CD Pipeline / Deploy to Server (push) Successful in 1s
All checks were successful
CI/CD Pipeline / Run Tests (push) Successful in 6m12s
CI/CD Pipeline / Code Quality Checks (push) Successful in 6m19s
CI/CD Pipeline / Build Docker Images (push) Successful in 2m21s
CI/CD Pipeline / Push to Gitea Registry (push) Successful in 1s
CI/CD Pipeline / Deploy to Server (push) Successful in 1s
This commit is contained in:
@@ -51,7 +51,21 @@ class RegisterImportServiceTest(TestCase):
|
||||
self.registry = Register.objects.create(name="Реестр предприятий ОПК")
|
||||
|
||||
def test_sync_registry_memberships_creates_snapshot(self):
|
||||
"""First upload creates organizations, upload fact and active periods."""
|
||||
"""First upload links only organizations already loaded from Mostovik."""
|
||||
Organization.objects.create(
|
||||
name="АО Альфа",
|
||||
inn="7707083893",
|
||||
ogrn="1027700132195",
|
||||
okpo="12345678",
|
||||
kpp="770701001",
|
||||
)
|
||||
Organization.objects.create(
|
||||
name="АО Бета",
|
||||
inn="7707083894",
|
||||
ogrn="1027700132196",
|
||||
okpo="12345679",
|
||||
kpp="770701002",
|
||||
)
|
||||
uploaded_file = build_registry_upload(
|
||||
"registry.xlsx",
|
||||
[
|
||||
@@ -79,7 +93,9 @@ class RegisterImportServiceTest(TestCase):
|
||||
)
|
||||
|
||||
self.assertEqual(result["rows_in_file"], 2)
|
||||
self.assertEqual(result["organizations_created"], 2)
|
||||
self.assertEqual(result["organizations_created"], 0)
|
||||
self.assertEqual(result["organizations_updated"], 0)
|
||||
self.assertEqual(result["organizations_skipped"], 0)
|
||||
self.assertEqual(result["opened_periods"], 2)
|
||||
self.assertEqual(Organization.objects.count(), 2)
|
||||
self.assertEqual(RegisterUpload.objects.count(), 1)
|
||||
@@ -88,8 +104,22 @@ class RegisterImportServiceTest(TestCase):
|
||||
2,
|
||||
)
|
||||
|
||||
def test_sync_registry_memberships_closes_missing_and_opens_new(self):
|
||||
"""Next snapshot closes missing orgs and opens periods for new ones."""
|
||||
def test_sync_registry_memberships_closes_missing_and_skips_unknown_orgs(self):
|
||||
"""Next snapshot closes missing orgs but does not create unknown ones."""
|
||||
Organization.objects.create(
|
||||
name="АО Альфа",
|
||||
inn="7707083893",
|
||||
ogrn="1027700132195",
|
||||
okpo="12345678",
|
||||
kpp="770701001",
|
||||
)
|
||||
Organization.objects.create(
|
||||
name="АО Бета",
|
||||
inn="7707083894",
|
||||
ogrn="1027700132196",
|
||||
okpo="12345679",
|
||||
kpp="770701002",
|
||||
)
|
||||
first_upload = build_registry_upload(
|
||||
"registry-1.xlsx",
|
||||
[
|
||||
@@ -140,14 +170,14 @@ class RegisterImportServiceTest(TestCase):
|
||||
actual_date=date(2026, 4, 1),
|
||||
)
|
||||
|
||||
self.assertEqual(result["organizations_created"], 1)
|
||||
self.assertEqual(result["organizations_updated"], 1)
|
||||
self.assertEqual(result["opened_periods"], 1)
|
||||
self.assertEqual(result["organizations_created"], 0)
|
||||
self.assertEqual(result["organizations_updated"], 0)
|
||||
self.assertEqual(result["organizations_skipped"], 1)
|
||||
self.assertEqual(result["opened_periods"], 0)
|
||||
self.assertEqual(result["closed_periods"], 1)
|
||||
|
||||
alpha = Organization.objects.get(inn="7707083893")
|
||||
beta = Organization.objects.get(inn="7707083894")
|
||||
gamma = Organization.objects.get(inn="7707083895")
|
||||
|
||||
alpha_period = RegistryMembershipPeriod.objects.get(
|
||||
registry=self.registry,
|
||||
@@ -158,15 +188,10 @@ class RegisterImportServiceTest(TestCase):
|
||||
organization=beta,
|
||||
ended_at__isnull=True,
|
||||
)
|
||||
gamma_period = RegistryMembershipPeriod.objects.get(
|
||||
registry=self.registry,
|
||||
organization=gamma,
|
||||
ended_at__isnull=True,
|
||||
)
|
||||
|
||||
self.assertEqual(alpha_period.ended_at, date(2026, 4, 1))
|
||||
self.assertEqual(beta_period.started_at, date(2026, 3, 1))
|
||||
self.assertEqual(gamma_period.started_at, date(2026, 4, 1))
|
||||
self.assertFalse(Organization.objects.filter(inn="7707083895").exists())
|
||||
beta.refresh_from_db()
|
||||
self.assertEqual(beta.name, "АО Бета обновлённое")
|
||||
self.assertEqual(beta.kpp, "770701099")
|
||||
self.assertEqual(beta.name, "АО Бета")
|
||||
self.assertEqual(beta.kpp, "770701002")
|
||||
|
||||
Reference in New Issue
Block a user