Files
shoppy/web/tests/test_wishlist.py
T
2025-05-02 08:38:57 +02:00

61 lines
2.9 KiB
Python

from django.contrib.auth.models import User
from django.test import TestCase
from django.urls import reverse
from shop.models import WishlistedProduct
from shop.tests.mixins import CreateProductsMixin
class TestWishlist(TestCase, CreateProductsMixin):
def setUp(self):
self.product = self.create_product()
self.user = User.objects.create_user('vader', 'darth@vader.com', 'ihatesand')
def test_logged_user_wishlist_button_for_non_wishlisted_product(self):
assert WishlistedProduct.objects.count() == 0
self.client.force_login(self.user)
response = self.client.get(reverse('web:wishlist_button', kwargs={'pk': self.product.pk}))
assert response.status_code == 200
def test_logged_user_wishlist_button_for_wishlisted_product(self):
WishlistedProduct.objects.create(user=self.user, product=self.product)
self.client.force_login(self.user)
response = self.client.get(reverse('web:wishlist_button', kwargs={'pk': self.product.pk}))
assert response.status_code == 200
def test_logged_user_create_wishlisted_product(self):
assert WishlistedProduct.objects.count() == 0
self.client.force_login(self.user)
response = self.client.post(reverse('web:add_to_wishlist'), {'product': self.product.pk})
assert response.status_code == 201
assert WishlistedProduct.objects.filter(user=self.user, product=self.product).exists()
def test_not_logged_user_create_wishlisted_product(self):
assert WishlistedProduct.objects.count() == 0
response = self.client.post(reverse('web:add_to_wishlist'), {'product': self.product.pk})
assert response.status_code == 400
def test_logged_user_delete_wishlisted_product(self):
wishlisted = WishlistedProduct.objects.create(user=self.user, product=self.product)
self.client.force_login(self.user)
response = self.client.post(reverse('web:delete_from_wishlist', kwargs={'pk': wishlisted.pk}))
assert response.status_code == 204
assert not WishlistedProduct.objects.filter(user=self.user, product=self.product).exists()
def test_logged_user_wishlist(self):
WishlistedProduct.objects.create(user=self.user, product=self.product)
self.client.force_login(self.user)
response = self.client.get(reverse('web:wishlist'))
assert response.status_code == 200
def test_not_logged_user_wishlist(self):
WishlistedProduct.objects.create(user=self.user, product=self.product)
response = self.client.get(reverse('web:wishlist'))
assert response.status_code == 302
def test_list_wishlisted_products(self):
WishlistedProduct.objects.create(user=self.user, product=self.product)
self.client.force_login(self.user)
response = self.client.get(reverse('web:list_wishlisted_products'))
assert response.status_code == 200