Skip to content

Commit

Permalink
test: corrected comments on tests
Browse files Browse the repository at this point in the history
  • Loading branch information
dev-lymar committed Jun 20, 2024
1 parent 59225d1 commit 0b932a8
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 57 deletions.
22 changes: 22 additions & 0 deletions makedoc/tests/conftest.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
import pytest
from faker import Faker
from rest_framework.test import APIClient
from rest_framework_simplejwt.tokens import RefreshToken

from users.models import CustomUser

fake = Faker()


@pytest.fixture
def user(django_user_model):
Expand All @@ -19,3 +22,22 @@ def authorized_client(user):
client.credentials(HTTP_AUTHORIZATION=f"Bearer {str(refresh.access_token)}")
client.user = user
return client


@pytest.fixture
def test_data():
return {
"delivery_type": fake.random_element(elements=("auto", "manual")),
"client_id": fake.random_int(min=1, max=100),
"items": [
{"product_id": fake.random_int(min=1, max=100),
"quantity": fake.random_int(min=1, max=10),
"discount": fake.random_int(min=0, max=50)},
{"product_id": fake.random_int(min=1, max=100),
"quantity": fake.random_int(min=1, max=10),
"discount": fake.random_int(min=0, max=50)},
],
"factory_id": fake.random_int(min=1, max=100),
"destination": fake.city(),
"delivery_cost": fake.random_int(min=100, max=2000),
}
69 changes: 13 additions & 56 deletions makedoc/tests/test_views_makedoc.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,94 +7,51 @@


@pytest.mark.django_db
def test__data_doc_view__unauthorized_user_cannot_post_data() -> None:
def test__data_doc_view__unauthorized_user_cannot_post_data(test_data):
client = APIClient()
url = reverse("data")
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,
}
response = client.post(url, data, format="json")
assert response.status_code == 401 # Unauthorized
response = client.post(url, test_data, format="json")
assert response.status_code == 401


@pytest.mark.django_db
def test__data_doc_view__authorized_user_can_post_data(authorized_client) -> None:
def test__data_doc_view__authorized_user_can_post_data(authorized_client, test_data):
url = reverse("data")
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,
}
response = authorized_client.post(url, data, format="json")
response = authorized_client.post(url, test_data, format="json")
assert response.status_code == 200


@pytest.mark.django_db
def test__data_doc_view__authorized_user_post_data_response_is_correct(authorized_client) -> None:
def test__data_doc_view__authorized_user_post_data_response_is_correct(authorized_client,
test_data):
url = reverse("data")
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,
}
response = authorized_client.post(url, data, format="json")
response = authorized_client.post(url, test_data, format="json")
assert response.status_code == 200
assert response.json() == {"Success": True}


@pytest.mark.django_db
def test_create_docs_view_get_valid_data(authorized_client):
def test__create_docs_view__get_valid_data(authorized_client, test_data):
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)
cache.set(cache_key, json.dumps(test_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):
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")
def test__download_doc_view__returns_404_when_no_file_exists(authorized_client):
url = reverse("downloadfile")
response = authorized_client.get(url)
assert response.status_code == 404
assert response.json() == {"error": "No file found"}
2 changes: 1 addition & 1 deletion makedoc/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@

urlpatterns = [
path("filemake/", CreateDocsView.as_view(), name="file"),
path("downloadxls/", DownloadDocView.as_view(), name="downloadxls"),
path("downloadfile/", DownloadDocView.as_view(), name="downloadfile"),
path("data/", DataDocView.as_view(), name="data"),
]

0 comments on commit 0b932a8

Please sign in to comment.