feat: export state corp package from backup endpoint
This commit is contained in:
@@ -9,7 +9,6 @@ from tempfile import TemporaryDirectory
|
||||
from types import SimpleNamespace
|
||||
from unittest.mock import patch
|
||||
|
||||
from apps.backups.models import BackupExportJob
|
||||
from apps.core.models import BackgroundJob
|
||||
from apps.exchange.models import ExchangeConnection
|
||||
from apps.parsers.models import (
|
||||
@@ -708,19 +707,29 @@ class BackupsApiInventoryE2ETest(AuthenticatedApiMixin, APITestCase):
|
||||
def setUp(self):
|
||||
self.admin = UserFactory.create_superuser()
|
||||
|
||||
@patch("apps.backups.services.BackupExportJobService._enqueue_backup_task")
|
||||
def test_backup_export_endpoint(self, enqueue_mock):
|
||||
@patch("apps.backups.views.StateCorpExchangeService.build_package")
|
||||
def test_backup_export_endpoint(self, build_package_mock):
|
||||
self.authenticate(self.admin)
|
||||
today = timezone.localdate()
|
||||
build_package_mock.return_value = SimpleNamespace(
|
||||
package_id="package-1",
|
||||
archive_name="state_corp_exchange.zip",
|
||||
bin_name="state_corp_exchange.bin",
|
||||
archive_bytes=b"zip-bytes",
|
||||
payload_counts={"organizations": 1},
|
||||
produced_at="2026-05-12T10:00:00+00:00",
|
||||
)
|
||||
|
||||
with self.captureOnCommitCallbacks(execute=True):
|
||||
response = self.client.post(
|
||||
reverse("api_v1:backups:export"),
|
||||
{"actual_date": today.isoformat()},
|
||||
format="json",
|
||||
)
|
||||
response = self.client.post(
|
||||
reverse("api_v1:backups:export"),
|
||||
{"actual_date": today.isoformat()},
|
||||
format="json",
|
||||
)
|
||||
|
||||
self.assertEqual(response.status_code, status.HTTP_202_ACCEPTED)
|
||||
self.assertEqual(response.data["status"], "started")
|
||||
self.assertTrue(BackupExportJob.objects.filter(actual_date=today).exists())
|
||||
enqueue_mock.assert_called_once()
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(response.content, b"zip-bytes")
|
||||
self.assertIn(
|
||||
'attachment; filename="state_corp_exchange.zip"',
|
||||
response["Content-Disposition"],
|
||||
)
|
||||
build_package_mock.assert_called_once_with(actual_date=today)
|
||||
|
||||
Reference in New Issue
Block a user