79 lines
2.8 KiB
Python
79 lines
2.8 KiB
Python
"""Tests for Organization model."""
|
|
|
|
from django.test import TestCase
|
|
|
|
from .factories import OrganizationFactory
|
|
|
|
|
|
class OrganizationModelTest(TestCase):
|
|
"""Tests for Organization model."""
|
|
|
|
def setUp(self):
|
|
self.org = OrganizationFactory.create()
|
|
|
|
def test_organization_creation(self):
|
|
"""Test organization creation."""
|
|
self.assertIsNotNone(self.org.id)
|
|
self.assertTrue(self.org.name)
|
|
self.assertTrue(self.org.inn)
|
|
|
|
def test_organization_str_representation(self):
|
|
"""Test string representation."""
|
|
expected = f"{self.org.name} (ИНН: {self.org.inn})"
|
|
self.assertEqual(str(self.org), expected)
|
|
|
|
def test_inn_unique(self):
|
|
"""Test INN field is unique."""
|
|
self.assertTrue(self.org._meta.get_field("inn").unique)
|
|
|
|
def test_inn_max_length(self):
|
|
"""Test INN max length."""
|
|
self.assertEqual(self.org._meta.get_field("inn").max_length, 12)
|
|
|
|
def test_ogrn_max_length(self):
|
|
"""Test OGRN max length."""
|
|
self.assertEqual(self.org._meta.get_field("ogrn").max_length, 15)
|
|
|
|
def test_kpp_max_length(self):
|
|
"""Test KPP max length."""
|
|
self.assertEqual(self.org._meta.get_field("kpp").max_length, 9)
|
|
|
|
def test_name_max_length(self):
|
|
"""Test name max length."""
|
|
self.assertEqual(self.org._meta.get_field("name").max_length, 500)
|
|
|
|
def test_timestamps_auto_created(self):
|
|
"""Test timestamps are auto-created."""
|
|
self.assertIsNotNone(self.org.created_at)
|
|
self.assertIsNotNone(self.org.updated_at)
|
|
|
|
def test_ogrn_index_exists(self):
|
|
"""Test OGRN has db_index."""
|
|
self.assertTrue(self.org._meta.get_field("ogrn").db_index)
|
|
|
|
def test_active_registry_names_are_derived_from_organization_fields(self):
|
|
"""Test registry display names are derived from organization directory fields."""
|
|
self.org.gk_name = "Росатом"
|
|
self.org.goz_participation = True
|
|
self.org.opk_registry_membership = True
|
|
self.org.ropk_razdel_name = "Росатом ОПК"
|
|
|
|
self.assertEqual(
|
|
self.org.get_active_registry_names(),
|
|
["Росатом", "Участие в ГОЗ", "Росатом ОПК"],
|
|
)
|
|
self.assertEqual(
|
|
self.org.active_registry_names_display(),
|
|
"Росатом, Участие в ГОЗ, Росатом ОПК",
|
|
)
|
|
|
|
def test_corporation_scopes_are_derived_from_organization_fields(self):
|
|
self.org.gk_name = "Росатом"
|
|
self.org.opk_registry_membership = True
|
|
|
|
self.assertEqual(self.org.get_corporation_scopes(), ["rosatom", "opk"])
|
|
self.assertEqual(
|
|
self.org.get_corporation_scope_labels(),
|
|
["Госкорпорация «Росатом»", "Организации ОПК"],
|
|
)
|