fix: align ci with organization redesign
Some checks failed
CI/CD Pipeline / Quality Gate (push) Failing after 18s
CI/CD Pipeline / Build and Push Images (push) Has been skipped
CI/CD Pipeline / Internal Notify (push) Successful in 0s
CI/CD Pipeline / Deploy Dev via Compose (push) Has been skipped

This commit is contained in:
2026-06-07 16:43:30 +02:00
parent 802257a757
commit 71eac688f2
10 changed files with 82 additions and 754 deletions

View File

@@ -19,7 +19,7 @@ from apps.parsers.models import (
)
from apps.user.services import UserService
from django.core.files.uploadedfile import SimpleUploadedFile
from django.urls import reverse
from django.urls import NoReverseMatch, reverse
from django.utils import timezone
from django_celery_beat.models import PeriodicTask
from openpyxl import Workbook
@@ -33,7 +33,6 @@ from tests.apps.parsers.factories import (
ManufacturerRecordFactory,
ParserLoadLogFactory,
)
from tests.apps.registers.factories import RegisterFactory
from tests.apps.user.factories import UserFactory
from tests.utils.fixtures import fake
@@ -57,26 +56,6 @@ def _build_fns_excel_bytes() -> bytes:
return buffer.getvalue()
def _build_register_excel_bytes(rows: list[dict[str, str]]) -> bytes:
workbook = Workbook()
worksheet = workbook.active
worksheet.append(["pn_name", "mn_ogrn", "mn_inn", "in_kpp", "mn_okpo"])
for row in rows:
worksheet.append(
[
row["pn_name"],
row["mn_ogrn"],
row["mn_inn"],
row["in_kpp"],
row["mn_okpo"],
]
)
buffer = io.BytesIO()
workbook.save(buffer)
workbook.close()
return buffer.getvalue()
def _extract_results(response_data):
if hasattr(response_data, "get"):
data = response_data.get("data")
@@ -473,10 +452,13 @@ class ParsersApiInventoryE2ETest(AuthenticatedApiMixin, APITestCase):
self.assertEqual(sources_statuses.status_code, status.HTTP_200_OK)
self.assertEqual(source_detail.status_code, status.HTTP_200_OK)
main_dashboard = self.client.get(reverse("api_v1:stat:main-dashboard"))
with self.assertRaises(NoReverseMatch):
reverse("api_v1:stat:main-dashboard")
main_dashboard = self.client.get(reverse("api_v1:parsers:dashboard-data"))
self.assertEqual(main_dashboard.status_code, status.HTTP_200_OK)
self.assertIn("source_cards", main_dashboard.data["data"])
self.assertIn("organization_stats", main_dashboard.data["data"])
self.assertIn("sources", main_dashboard.data["data"])
self.assertIn("source_counts", main_dashboard.data["data"])
self.authenticate(self.admin)
parsing_url = reverse("api_v1:parsing:parsing-settings")
@@ -544,64 +526,13 @@ class RegistersApiInventoryE2ETest(AuthenticatedApiMixin, APITestCase):
self.user = UserFactory.create_user()
self.admin = UserFactory.create_superuser()
def test_registers_endpoints(self):
registry = RegisterFactory(name="Inventory Registry")
rows = [
{
"pn_name": "Inventory Org",
"mn_ogrn": "1027600980990",
"mn_inn": "7601000086",
"in_kpp": "760401001",
"mn_okpo": "07506197",
}
]
self.authenticate(self.admin)
upload = SimpleUploadedFile(
"inventory-registry.xlsx",
_build_register_excel_bytes(rows),
content_type=(
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
),
)
upload_response = self.client.post(
reverse("api_v1:registers:register-upload"),
{
"registry": str(registry.id),
"actual_date": date(2026, 1, 1).isoformat(),
"file": upload,
},
format="multipart",
)
self.assertEqual(upload_response.status_code, status.HTTP_201_CREATED)
self.authenticate(self.user)
registries_list = self.client.get(reverse("api_v1:registers:registries-list"))
registries_detail = self.client.get(
reverse("api_v1:registers:registries-detail", args=[registry.id])
)
organizations_list = self.client.get(
reverse("api_v1:registers:organizations-list")
)
organization_id = _extract_results(organizations_list.data)[0]["id"]
organization_detail = self.client.get(
reverse("api_v1:registers:organizations-detail", args=[organization_id])
)
registry_organizations = self.client.get(
reverse(
"api_v1:registers:registry-organizations-list",
args=[registry.id],
)
)
for response in (
registries_list,
registries_detail,
organizations_list,
organization_detail,
registry_organizations,
):
self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_registers_endpoints_are_removed(self):
with self.assertRaises(NoReverseMatch):
reverse("api_v1:registers:register-upload")
with self.assertRaises(NoReverseMatch):
reverse("api_v1:registers:registries-list")
with self.assertRaises(NoReverseMatch):
reverse("api_v2:registers:register-upload-rosatom-goz")
class ExchangeApiInventoryE2ETest(AuthenticatedApiMixin, APITestCase):