fix: exclude demo companies from state corp exchange
This commit is contained in:
@@ -35,6 +35,7 @@ from django.conf import settings
|
|||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from organizations.models import Organization, OrganizationSourceRecord
|
from organizations.models import Organization, OrganizationSourceRecord
|
||||||
|
from organizations.test_companies import TestCompanyDatasetService
|
||||||
|
|
||||||
|
|
||||||
class StateCorpExchangeError(ValueError):
|
class StateCorpExchangeError(ValueError):
|
||||||
@@ -289,7 +290,9 @@ class StateCorpExchangeService:
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _rosatom_roscosmos_queryset(cls):
|
def _rosatom_roscosmos_queryset(cls):
|
||||||
queryset = Organization.objects.exclude(inn="")
|
queryset = Organization.objects.exclude(inn="").exclude(
|
||||||
|
uid__in=TestCompanyDatasetService.company_uids()
|
||||||
|
)
|
||||||
name_query = Q()
|
name_query = Q()
|
||||||
for keyword in cls.ROSATOM_ROSCOSMOS_GK_NAME_KEYWORDS:
|
for keyword in cls.ROSATOM_ROSCOSMOS_GK_NAME_KEYWORDS:
|
||||||
name_query |= Q(gk_name__icontains=keyword)
|
name_query |= Q(gk_name__icontains=keyword)
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ from apps.parsers.models import (
|
|||||||
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
|
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
|
||||||
from django.test import TestCase, override_settings
|
from django.test import TestCase, override_settings
|
||||||
from organizations.models import Organization
|
from organizations.models import Organization
|
||||||
|
from organizations.test_companies import TestCompanyDatasetService
|
||||||
|
|
||||||
from tests.apps.parsers.factories import (
|
from tests.apps.parsers.factories import (
|
||||||
IndustrialCertificateRecordFactory,
|
IndustrialCertificateRecordFactory,
|
||||||
@@ -67,6 +68,30 @@ TEST_STATE_CORP_TOKEN = "state-corp-test-exchange-token" # noqa: S105
|
|||||||
class StateCorpExchangeServiceTest(TestCase):
|
class StateCorpExchangeServiceTest(TestCase):
|
||||||
"""Verify package compatibility with state-corp receiver contract."""
|
"""Verify package compatibility with state-corp receiver contract."""
|
||||||
|
|
||||||
|
def test_default_package_excludes_deterministic_test_companies(self):
|
||||||
|
real_organization = Organization.objects.create(
|
||||||
|
rn=1001,
|
||||||
|
name="Реальная организация",
|
||||||
|
inn="7707083893",
|
||||||
|
gk_name="Росатом",
|
||||||
|
)
|
||||||
|
Organization.objects.create(
|
||||||
|
uid=TestCompanyDatasetService.company_uids()[0],
|
||||||
|
rn=9001,
|
||||||
|
name="Тестовая компания 1",
|
||||||
|
inn="7700000001",
|
||||||
|
gk_name="Росатом",
|
||||||
|
)
|
||||||
|
|
||||||
|
package = StateCorpExchangeService.build_package()
|
||||||
|
payload = _decode_package_payload(package)
|
||||||
|
|
||||||
|
self.assertEqual(package.payload_counts["organizations"], 1)
|
||||||
|
self.assertEqual(
|
||||||
|
[row["mostovik_uid"] for row in payload["data"]["organizations"]],
|
||||||
|
[str(real_organization.uid)],
|
||||||
|
)
|
||||||
|
|
||||||
def test_build_package_contains_expected_payload(self):
|
def test_build_package_contains_expected_payload(self):
|
||||||
organization = Organization.objects.create(
|
organization = Organization.objects.create(
|
||||||
rn=1001,
|
rn=1001,
|
||||||
|
|||||||
Reference in New Issue
Block a user