feat: add demo report import workflow
This commit is contained in:
@@ -371,6 +371,7 @@ class ExchangePackageApiTest(APITestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.url = reverse("api_v1:exchange:package-upload")
|
||||
self.latest_url = reverse("api_v1:exchange:package-latest")
|
||||
password = get_random_string(16)
|
||||
self.user = User.objects.create_user(
|
||||
username="exchange-admin",
|
||||
@@ -378,6 +379,55 @@ class ExchangePackageApiTest(APITestCase):
|
||||
password=password,
|
||||
)
|
||||
|
||||
def test_latest_requires_authentication(self):
|
||||
response = self.client.get(self.latest_url)
|
||||
|
||||
self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED)
|
||||
|
||||
def test_latest_returns_null_when_no_packages_exist(self):
|
||||
self.client.force_authenticate(self.user)
|
||||
|
||||
response = self.client.get(self.latest_url)
|
||||
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(
|
||||
response.data,
|
||||
{"success": True, "data": None, "errors": None, "meta": None},
|
||||
)
|
||||
|
||||
def test_latest_returns_newest_package_metadata(self):
|
||||
older = ExchangePackageImport.objects.create(
|
||||
package_id="older-package",
|
||||
package_name="older.zip",
|
||||
package_hash="a" * 64,
|
||||
source_system="mostovik",
|
||||
schema_version=1,
|
||||
delivery_channel=ExchangeDeliveryChannel.API,
|
||||
status="failed",
|
||||
)
|
||||
latest = ExchangePackageImport.objects.create(
|
||||
package_id="latest-package",
|
||||
package_name="latest.zip",
|
||||
package_hash="b" * 64,
|
||||
source_system="mostovik",
|
||||
schema_version=1,
|
||||
delivery_channel=ExchangeDeliveryChannel.API,
|
||||
status="success",
|
||||
)
|
||||
ExchangePackageImport.objects.filter(pk=older.pk).update(
|
||||
created_at=older.created_at.replace(year=older.created_at.year - 1)
|
||||
)
|
||||
self.client.force_authenticate(self.user)
|
||||
|
||||
response = self.client.get(self.latest_url)
|
||||
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(response.data["data"]["id"], str(latest.id))
|
||||
self.assertEqual(response.data["data"]["package_id"], "latest-package")
|
||||
self.assertEqual(response.data["data"]["package_name"], "latest.zip")
|
||||
self.assertEqual(response.data["data"]["status"], "success")
|
||||
self.assertIn("created_at", response.data["data"])
|
||||
|
||||
def test_upload_imports_package_and_upserts_models(self):
|
||||
Organization.objects.create(
|
||||
inn="7707083893",
|
||||
|
||||
Reference in New Issue
Block a user