feat: expand platform APIs, sources, and test coverage
Some checks failed
CI/CD Pipeline / Run Tests (pull_request) Successful in 1m53s
CI/CD Pipeline / Telegram Notify Success (push) Has been cancelled
CI/CD Pipeline / Run Tests (push) Has been cancelled
CI/CD Pipeline / Code Quality Checks (push) Has been cancelled
CI/CD Pipeline / Code Quality Checks (pull_request) Failing after 2m54s
CI/CD Pipeline / Telegram Notify Success (pull_request) Has been skipped
Some checks failed
CI/CD Pipeline / Run Tests (pull_request) Successful in 1m53s
CI/CD Pipeline / Telegram Notify Success (push) Has been cancelled
CI/CD Pipeline / Run Tests (push) Has been cancelled
CI/CD Pipeline / Code Quality Checks (push) Has been cancelled
CI/CD Pipeline / Code Quality Checks (pull_request) Failing after 2m54s
CI/CD Pipeline / Telegram Notify Success (pull_request) Has been skipped
This commit is contained in:
@@ -15,6 +15,7 @@ from rest_framework.test import APITestCase
|
||||
|
||||
from tests.apps.parsers.factories import (
|
||||
IndustrialCertificateRecordFactory,
|
||||
IndustrialProductRecordFactory,
|
||||
InspectionRecordFactory,
|
||||
ManufacturerRecordFactory,
|
||||
ParserLoadLogFactory,
|
||||
@@ -87,6 +88,17 @@ class ParsersViewSetTest(APITestCase):
|
||||
)
|
||||
self.assertEqual(detail.status_code, status.HTTP_200_OK)
|
||||
|
||||
def test_products_list_and_retrieve(self):
|
||||
record = IndustrialProductRecordFactory()
|
||||
self.client.force_authenticate(self.user)
|
||||
url = reverse("api_v1:minpromtorg:industrial-products-list")
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
detail = self.client.get(
|
||||
reverse("api_v1:minpromtorg:industrial-products-detail", args=[record.id])
|
||||
)
|
||||
self.assertEqual(detail.status_code, status.HTTP_200_OK)
|
||||
|
||||
def test_inspections_list_and_retrieve(self):
|
||||
record = InspectionRecordFactory()
|
||||
self.client.force_authenticate(self.user)
|
||||
@@ -168,7 +180,7 @@ class ParsersViewSetTest(APITestCase):
|
||||
self.assertEqual(proxy_detail.status_code, status.HTTP_200_OK)
|
||||
|
||||
def test_fns_upload_invalid_filename(self):
|
||||
self.client.force_authenticate(self.user)
|
||||
self.client.force_authenticate(self.admin)
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
watch_dir = os.path.join(tmpdir, "watch")
|
||||
processed_dir = os.path.join(tmpdir, "processed")
|
||||
@@ -191,3 +203,28 @@ class ParsersViewSetTest(APITestCase):
|
||||
url, {"files": [upload]}, format="multipart"
|
||||
)
|
||||
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def test_fns_upload_forbidden_for_regular_user(self):
|
||||
self.client.force_authenticate(self.user)
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
watch_dir = os.path.join(tmpdir, "watch")
|
||||
processed_dir = os.path.join(tmpdir, "processed")
|
||||
failed_dir = os.path.join(tmpdir, "failed")
|
||||
content = _build_fns_excel_bytes()
|
||||
upload = SimpleUploadedFile(
|
||||
f"fin_{_digits(5)}_{_digits(13)}.xlsx",
|
||||
content,
|
||||
content_type=(
|
||||
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
||||
),
|
||||
)
|
||||
with self.settings(
|
||||
FNS_WATCH_DIRECTORY=watch_dir,
|
||||
FNS_PROCESSED_DIRECTORY=processed_dir,
|
||||
FNS_FAILED_DIRECTORY=failed_dir,
|
||||
):
|
||||
url = reverse("api_v1:fns:fns-upload")
|
||||
response = self.client.post(
|
||||
url, {"files": [upload]}, format="multipart"
|
||||
)
|
||||
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
|
||||
|
||||
Reference in New Issue
Block a user