Implement exchange imports and frontend reporting APIs
Some checks failed
CI/CD Pipeline / Code Quality Checks (push) Failing after 3m50s
CI/CD Pipeline / Run Tests (push) Successful in 3m57s
CI/CD Pipeline / Build Docker Images (push) Has been skipped
CI/CD Pipeline / Push to Gitea Registry (push) Has been skipped
CI/CD Pipeline / Deploy to Server (push) Has been skipped
Some checks failed
CI/CD Pipeline / Code Quality Checks (push) Failing after 3m50s
CI/CD Pipeline / Run Tests (push) Successful in 3m57s
CI/CD Pipeline / Build Docker Images (push) Has been skipped
CI/CD Pipeline / Push to Gitea Registry (push) Has been skipped
CI/CD Pipeline / Deploy to Server (push) Has been skipped
This commit is contained in:
47
tests/apps/exchange/test_admin.py
Normal file
47
tests/apps/exchange/test_admin.py
Normal file
@@ -0,0 +1,47 @@
|
||||
"""Tests for exchange package admin upload flow."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from django.test import TestCase
|
||||
from django.urls import reverse
|
||||
|
||||
from apps.exchange.models import ExchangeDeliveryChannel, ExchangePackageImport
|
||||
from apps.organization.models import Organization
|
||||
from tests.apps.exchange.test_api import build_exchange_archive, build_exchange_payload
|
||||
from tests.apps.user.factories import UserFactory
|
||||
|
||||
|
||||
class ExchangePackageAdminTest(TestCase):
|
||||
"""Verify manual package import entrypoints in Django admin."""
|
||||
|
||||
def setUp(self):
|
||||
self.superuser = UserFactory.create_superuser()
|
||||
self.client.force_login(self.superuser)
|
||||
self.upload_url = reverse("admin:exchange_exchangepackageimport_upload_package")
|
||||
self.changelist_url = reverse("admin:exchange_exchangepackageimport_changelist")
|
||||
|
||||
def test_upload_package_view_imports_exchange_archive(self):
|
||||
archive = build_exchange_archive(
|
||||
package_id="pkg-admin-001",
|
||||
data=build_exchange_payload(),
|
||||
)
|
||||
|
||||
response = self.client.post(
|
||||
self.upload_url,
|
||||
{"file": archive},
|
||||
follow=True,
|
||||
)
|
||||
|
||||
self.assertRedirects(response, self.changelist_url)
|
||||
self.assertContains(response, "Импорт пакета обмена завершён")
|
||||
imported = ExchangePackageImport.objects.get(package_id="pkg-admin-001")
|
||||
self.assertEqual(imported.delivery_channel, ExchangeDeliveryChannel.ADMIN)
|
||||
self.assertEqual(imported.imported_by, self.superuser)
|
||||
self.assertEqual(Organization.objects.count(), 2)
|
||||
|
||||
def test_admin_dashboard_contains_exchange_action(self):
|
||||
response = self.client.get(reverse("admin:index"))
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "Обмен данными")
|
||||
self.assertContains(response, self.upload_url)
|
||||
Reference in New Issue
Block a user