Add v2 registry uploads and source CSV exports
Some checks failed
CI/CD Pipeline / Quality Gate (push) Failing after 9s
CI/CD Pipeline / Build and Push Images (push) Has been skipped
CI/CD Pipeline / Deploy Dev in Dokploy (push) Has been skipped
CI/CD Pipeline / Internal Notify (push) Successful in 0s

This commit is contained in:
2026-05-07 14:39:20 +02:00
parent 507ae2063a
commit 82ba7b78cd
13 changed files with 637 additions and 8 deletions

View File

@@ -160,6 +160,100 @@ class RegisterImportServiceTest(TestCase):
self.assertEqual(existing.in_kpp, 444)
self.assertEqual(existing.mn_okpo, "87654321")
def test_parse_xlsx_accepts_opk_source_header_aliases(self):
upload = _upload(
"opk.xlsx",
[
[
"rn",
"okpo",
"ogrn",
"inn",
"filial",
"ropk_num",
"ropk_razdel_num",
"ropk_razdel_name",
"short_name",
"full_name",
],
[
1,
"07506197",
"1027600980990",
"7601000086",
"",
"1",
"1",
"Раздел",
'АО "ЯРЗ"',
'АКЦИОНЕРНОЕ ОБЩЕСТВО "ЯРОСЛАВСКИЙ РАДИОЗАВОД"',
],
],
)
rows = RegisterImportService.parse_xlsx(upload)
self.assertEqual(len(rows), 1)
self.assertEqual(
rows[0].pn_name,
'АКЦИОНЕРНОЕ ОБЩЕСТВО "ЯРОСЛАВСКИЙ РАДИОЗАВОД"',
)
self.assertEqual(rows[0].mn_ogrn, 1027600980990)
self.assertEqual(rows[0].mn_inn, 7601000086)
self.assertIsNone(rows[0].in_kpp)
self.assertEqual(rows[0].mn_okpo, "07506197")
def test_parse_xlsx_skips_opk_branch_rows_without_identity(self):
upload = _upload(
"opk.xlsx",
[
[
"rn",
"okpo",
"ogrn",
"inn",
"filial",
"ropk_num",
"ropk_razdel_num",
"ropk_razdel_name",
"short_name",
"full_name",
],
[
100,
"52511425",
None,
None,
True,
48,
1,
"Минпромторг России",
'Филиал ПАО "Ил" - ВАСО',
(
'Филиал публичного акционерного общества "Авиационный '
'комплекс им. С.В. Ильюшина" - ВАСО'
),
],
[
1,
"07506197",
"1027600980990",
"7601000086",
False,
1,
1,
"Минпромторг России",
'АО "ЯРЗ"',
'АКЦИОНЕРНОЕ ОБЩЕСТВО "ЯРОСЛАВСКИЙ РАДИОЗАВОД"',
],
],
)
rows = RegisterImportService.parse_xlsx(upload)
self.assertEqual(len(rows), 1)
self.assertEqual(rows[0].mn_ogrn, 1027600980990)
def test_get_active_periods_by_org_returns_mapping(self):
registry = RegisterFactory()
active_period = RegistryMembershipPeriodFactory(