From ee7aa0d13f93b6f26c1d65f893ddab2f6dc41d92 Mon Sep 17 00:00:00 2001 From: Arafat Olayiwola Date: Thu, 4 Jul 2024 14:02:38 +0100 Subject: [PATCH 1/3] fix product ursl to match up test cases --- inventory/urls.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inventory/urls.py b/inventory/urls.py index 19935ca..adea396 100644 --- a/inventory/urls.py +++ b/inventory/urls.py @@ -7,8 +7,8 @@ app_name = 'inventory' urlpatterns = [ - path('products', InventoryProductList.as_view(), name='product_list'), - path('products/', InventoryProductCreate.as_view(), name='product_add'), + path('products/', InventoryProductList.as_view(), name='product_list'), + path('products/add/', InventoryProductCreate.as_view(), name='product_add'), #test required to distinguish url not only with slash path('products//', InventoryProductDetail.as_view(), name='product_detail'), path('orders/', OrderListCreate.as_view(), name='order_list_create'), path('orders//', OrderDetail.as_view(), name='order_detail'), From 4c6f8e89d691c160e4d0c60a4f6e7c7f2fe5e6a9 Mon Sep 17 00:00:00 2001 From: Arafat Olayiwola Date: Thu, 4 Jul 2024 14:43:38 +0100 Subject: [PATCH 2/3] always migrate to new sqlite generated during tests --- run_tests.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/run_tests.sh b/run_tests.sh index 73a02c5..9bf1052 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -1,4 +1,5 @@ _#!/bin/bash export PYTHONPATH=./ rm -rf db.sqlite3 +make migrate pytest \ No newline at end of file From 6861bbc107f5a2af4dc8fa6d9eca4d21e84a29fe Mon Sep 17 00:00:00 2001 From: Arafat Olayiwola Date: Thu, 4 Jul 2024 14:55:23 +0100 Subject: [PATCH 3/3] redirect product changes to new branch --- test/test_product.py | 61 -------------------------------------------- 1 file changed, 61 deletions(-) diff --git a/test/test_product.py b/test/test_product.py index ef15fa9..e69de29 100644 --- a/test/test_product.py +++ b/test/test_product.py @@ -1,61 +0,0 @@ -import pytest -from django.urls import reverse -from rest_framework import status -from rest_framework.test import APIClient -from users.models import User -from inventory.models import Product - -@pytest.fixture -def api_client(): - return APIClient() - -@pytest.fixture -def admin_user(db): - return User.objects.create_user(email='admin@gmail.co', username='admin', password='admin123', is_staff=True) - -@pytest.fixture -def regular_user(db): - return User.objects.create_user(username='user',email='user@test.co', password='user123') - -@pytest.fixture -def product_data(): - return { - 'name': 'Test Product', - 'description': 'Test Description', - 'quantity': 10, - 'price': 100.0 - } - -@pytest.mark.django_db -def test_admin_can_create_product(api_client, admin_user, product_data): - url = reverse('product_add') - api_client.force_authenticate(user=admin_user) - response = api_client.post(url, product_data, format='json') - assert response.status_code == status.HTTP_201_CREATED - assert response.data['name'] == product_data['name'] - assert response.data['description'] == product_data['description'] - assert response.data['quantity'] == product_data['quantity'] - assert response.data['price'] == product_data['price'] - -# @pytest.mark.django_db -# def test_non_admin_cannot_create_product(api_client, regular_user, product_data): -# url = reverse('product_add') -# api_client.force_authenticate(user=regular_user) -# response = api_client.post(url, product_data, format='json') -# assert response.status_code == status.HTTP_403_FORBIDDEN - -# @pytest.mark.django_db -# def test_create_product_with_invalid_data(api_client, admin_user, product_data): -# url = reverse('product_add') -# api_client.force_authenticate(user=admin_user) -# invalid_data = product_data.copy() -# invalid_data['price'] = -100 # Invalid price -# response = api_client.post(url, invalid_data, format='json') -# assert response.status_code == status.HTTP_400_BAD_REQUEST -# assert 'price' in response.data - -# @pytest.mark.django_db -# def test_unauthenticated_user_cannot_create_product(api_client, product_data): -# url = reverse('product_add') -# response = api_client.post(url, product_data, format='json') -# assert response.status_code == status.HTTP_401_UNAUTHORIZED