From 59225d1a0af344efe41cea5acd3d28ec6c4fc677 Mon Sep 17 00:00:00 2001 From: Lymar Volodymyr Date: Wed, 19 Jun 2024 10:38:08 +0200 Subject: [PATCH] test: add tests for document download view and create docs view --- makedoc/tests/conftest.py | 1 + makedoc/tests/test_views_makedoc.py | 44 ++++++++++++++++++++++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/makedoc/tests/conftest.py b/makedoc/tests/conftest.py index 0debfc0..e1dcc06 100644 --- a/makedoc/tests/conftest.py +++ b/makedoc/tests/conftest.py @@ -17,4 +17,5 @@ def authorized_client(user): client = APIClient() refresh = RefreshToken.for_user(user) client.credentials(HTTP_AUTHORIZATION=f"Bearer {str(refresh.access_token)}") + client.user = user return client diff --git a/makedoc/tests/test_views_makedoc.py b/makedoc/tests/test_views_makedoc.py index 698e905..d482fb2 100644 --- a/makedoc/tests/test_views_makedoc.py +++ b/makedoc/tests/test_views_makedoc.py @@ -1,4 +1,7 @@ +import json + import pytest +from django.core.cache import cache from django.urls import reverse from rest_framework.test import APIClient @@ -55,4 +58,43 @@ def test__data_doc_view__authorized_user_post_data_response_is_correct(authorize "delivery_cost": 1500, } response = authorized_client.post(url, data, format="json") - assert response.json() == {"success": True, "data": data} + assert response.status_code == 200 + assert response.json() == {"Success": True} + + +@pytest.mark.django_db +def test_create_docs_view_get_valid_data(authorized_client): + url = reverse("file") + cache_key = f"validated_data_{authorized_client.user.id}" + data = { + "delivery_type": "auto", + "client_id": 1, + "items": [ + {"product_id": 1, "quantity": 2, "discount": 10}, + {"product_id": 2, "quantity": 5, "discount": 4}, + ], + "factory_id": 1, + "destination": "New York", + "delivery_cost": 1500, + } + cache.set(cache_key, json.dumps(data), timeout=120) + response = authorized_client.get(url) + assert response.status_code == 200 + assert response.json() == {"message": "Documents saved"} + cache.delete(cache_key) + + +@pytest.mark.django_db +def test_create_docs_view_get_no_data(authorized_client): + url = reverse("file") + response = authorized_client.get(url) + assert response.status_code == 400 + assert response.json() == {"error": "No data found in cache"} + + +@pytest.mark.django_db +def test_download_doc_view(authorized_client): + url = reverse("downloadxls") + response = authorized_client.get(url) + assert response.status_code == 404 + assert response.json() == {"error": "No file found"}