feat: ruff'ed

This commit is contained in:
2025-05-02 08:38:57 +02:00
parent 32b36b81b3
commit 48b53d851a
62 changed files with 2019 additions and 3655 deletions
+20 -47
View File
@@ -10,22 +10,20 @@ from web.settings import ANONYMOUS_CART_ID_COOKIE_NAME
class TestCart(TestCase, CreateProductsMixin):
def setUp(self):
self.product = self.create_product()
self.user = User.objects.create_user("vader", "darth@vader.com", "ihatesand")
self.user = User.objects.create_user('vader', 'darth@vader.com', 'ihatesand')
def test_anonymous_cart(self):
assert Cart.objects.count() == 0
response = self.client.get(reverse("web:cart_dropdown"))
response = self.client.get(reverse('web:cart_dropdown'))
assert response.status_code == 200
cart = Cart.objects.all().first()
assert cart is not None
assert response.cookies.get(ANONYMOUS_CART_ID_COOKIE_NAME).value == str(
cart.uuid
)
assert response.cookies.get(ANONYMOUS_CART_ID_COOKIE_NAME).value == str(cart.uuid)
def test_logged_user_without_cart(self):
assert Cart.objects.count() == 0
self.client.force_login(self.user)
response = self.client.get(reverse("web:cart_dropdown"))
response = self.client.get(reverse('web:cart_dropdown'))
assert response.status_code == 200
assert Cart.objects.count() == 1
assert not response.cookies.get(ANONYMOUS_CART_ID_COOKIE_NAME)
@@ -33,7 +31,7 @@ class TestCart(TestCase, CreateProductsMixin):
def test_logged_user_with_cart(self):
Cart.objects.create(user=self.user)
self.client.force_login(self.user)
response = self.client.get(reverse("web:cart_dropdown"))
response = self.client.get(reverse('web:cart_dropdown'))
assert response.status_code == 200
assert not response.cookies.get(ANONYMOUS_CART_ID_COOKIE_NAME)
@@ -41,17 +39,12 @@ class TestCart(TestCase, CreateProductsMixin):
quantity = 2
assert Cart.objects.count() == 0
response = self.client.post(
reverse("web:add_cart_item"),
{"product": self.product.pk, "quantity": quantity},
)
response = self.client.post(reverse('web:add_cart_item'), {'product': self.product.pk, 'quantity': quantity})
assert response.status_code == 201
cart = Cart.objects.all().first()
assert cart is not None
assert response.cookies.get(ANONYMOUS_CART_ID_COOKIE_NAME).value == str(
cart.uuid
)
assert response.cookies.get(ANONYMOUS_CART_ID_COOKIE_NAME).value == str(cart.uuid)
cart_item = CartItem.objects.filter(cart=cart).first()
assert cart_item is not None
@@ -63,10 +56,7 @@ class TestCart(TestCase, CreateProductsMixin):
assert Cart.objects.count() == 0
self.client.force_login(self.user)
response = self.client.post(
reverse("web:add_cart_item"),
{"product": self.product.pk, "quantity": quantity},
)
response = self.client.post(reverse('web:add_cart_item'), {'product': self.product.pk, 'quantity': quantity})
assert response.status_code == 201
cart = Cart.objects.all().first()
@@ -83,10 +73,7 @@ class TestCart(TestCase, CreateProductsMixin):
Cart.objects.create(user=self.user)
self.client.force_login(self.user)
response = self.client.post(
reverse("web:add_cart_item"),
{"product": self.product.pk, "quantity": quantity},
)
response = self.client.post(reverse('web:add_cart_item'), {'product': self.product.pk, 'quantity': quantity})
assert response.status_code == 201
cart = Cart.objects.all().first()
@@ -103,16 +90,10 @@ class TestCart(TestCase, CreateProductsMixin):
Cart.objects.create(user=self.user)
self.client.force_login(self.user)
response = self.client.post(
reverse("web:add_cart_item"),
{"product": self.product.pk, "quantity": quantity},
)
response = self.client.post(reverse('web:add_cart_item'), {'product': self.product.pk, 'quantity': quantity})
assert response.status_code == 201
response = self.client.post(
reverse("web:add_cart_item"),
{"product": self.product.pk, "quantity": quantity},
)
response = self.client.post(reverse('web:add_cart_item'), {'product': self.product.pk, 'quantity': quantity})
assert response.status_code == 201
cart = Cart.objects.all().first()
@@ -129,17 +110,12 @@ class TestCart(TestCase, CreateProductsMixin):
quantity = 2
assert Cart.objects.count() == 0
response = self.client.post(
reverse("web:add_cart_item"),
{"product": self.product.pk, "quantity": quantity},
)
response = self.client.post(reverse('web:add_cart_item'), {'product': self.product.pk, 'quantity': quantity})
assert response.status_code == 201
cart = Cart.objects.all().first()
assert cart is not None
assert response.cookies.get(ANONYMOUS_CART_ID_COOKIE_NAME).value == str(
cart.uuid
)
assert response.cookies.get(ANONYMOUS_CART_ID_COOKIE_NAME).value == str(cart.uuid)
cart_item = CartItem.objects.filter(cart=cart).first()
assert cart_item is not None
@@ -147,8 +123,8 @@ class TestCart(TestCase, CreateProductsMixin):
assert cart_item.quantity == quantity
response = self.client.post(
reverse("web:delete_cart_item", kwargs={"pk": cart_item.pk}),
{"product": self.product.pk, "quantity": quantity},
reverse('web:delete_cart_item', kwargs={'pk': cart_item.pk}),
{'product': self.product.pk, 'quantity': quantity},
)
assert response.status_code == 204
assert CartItem.objects.filter(cart=cart).count() == 0
@@ -158,10 +134,7 @@ class TestCart(TestCase, CreateProductsMixin):
assert Cart.objects.count() == 0
self.client.force_login(self.user)
response = self.client.post(
reverse("web:add_cart_item"),
{"product": self.product.pk, "quantity": quantity},
)
response = self.client.post(reverse('web:add_cart_item'), {'product': self.product.pk, 'quantity': quantity})
assert response.status_code == 201
cart = Cart.objects.all().first()
@@ -174,15 +147,15 @@ class TestCart(TestCase, CreateProductsMixin):
assert cart_item.quantity == quantity
response = self.client.post(
reverse("web:delete_cart_item", kwargs={"pk": cart_item.pk}),
{"product": self.product.pk, "quantity": quantity},
reverse('web:delete_cart_item', kwargs={'pk': cart_item.pk}),
{'product': self.product.pk, 'quantity': quantity},
)
assert response.status_code == 204
assert CartItem.objects.filter(cart=cart).count() == 0
def test_anonymous_cart_detail_component(self):
assert Cart.objects.count() == 0
response = self.client.get(reverse("web:cart"))
response = self.client.get(reverse('web:cart'))
assert response.status_code == 200
assert Cart.objects.count() == 1
@@ -191,5 +164,5 @@ class TestCart(TestCase, CreateProductsMixin):
cart = Cart.objects.create(user=self.user)
CartItem.objects.create(cart=cart, product=self.product, quantity=1)
self.client.force_login(self.user)
response = self.client.get(reverse("web:cart"))
response = self.client.get(reverse('web:cart'))
assert response.status_code == 200
+2 -6
View File
@@ -10,10 +10,6 @@ class TestCategoryView(TestCase, CreateProductsMixin):
self.product = self.create_product()
def test_category_view(self):
category = ProductCategory.objects.create(
name="category 1", show_in_navbar=True, hidden=False
)
response = self.client.get(
reverse("web:category_view", kwargs={"slug": category.slug})
)
category = ProductCategory.objects.create(name='category 1', show_in_navbar=True, hidden=False)
response = self.client.get(reverse('web:category_view', kwargs={'slug': category.slug}))
assert response.status_code == 200
+6 -10
View File
@@ -7,22 +7,18 @@ from shop.tests.mixins import CreateProductsMixin
class TestChangeUserPassword(TestCase, CreateProductsMixin):
def setUp(self):
self.password = "ihatesand"
self.user = User.objects.create_user("vader", "darth@vader.com", self.password)
self.password = 'ihatesand'
self.user = User.objects.create_user('vader', 'darth@vader.com', self.password)
def test_update_user_info(self):
self.client.force_login(self.user)
response = self.client.get(reverse("web:change_password_component"))
response = self.client.get(reverse('web:change_password_component'))
assert response.status_code == 200
new_password = "ifnhatesandbro"
data = {
"old_password": self.password,
"new_password1": new_password,
"new_password2": new_password,
}
new_password = 'ifnhatesandbro'
data = {'old_password': self.password, 'new_password1': new_password, 'new_password2': new_password}
response = self.client.post(reverse("web:change_password_component"), data)
response = self.client.post(reverse('web:change_password_component'), data)
assert response.status_code == 200
self.user.refresh_from_db()
+1 -1
View File
@@ -9,5 +9,5 @@ class TestWebComponents(TestCase, CreateProductsMixin):
self.product = self.create_product()
def test_list_products_component(self):
response = self.client.get(reverse("web:list_products"))
response = self.client.get(reverse('web:list_products'))
assert response.status_code == 200
+21 -24
View File
@@ -8,43 +8,40 @@ from shop.tests.mixins import CreateProductsMixin
class TestCustomerAddresses(TestCase, CreateProductsMixin):
def setUp(self):
self.user = User.objects.create_user("vader", "darth@vader.com", "ihatesand")
self.user = User.objects.create_user('vader', 'darth@vader.com', 'ihatesand')
self.customer_address = CustomerAddress.objects.create(
user=self.user,
full_name="Darth Vader",
full_name='Darth Vader',
address_type=CustomerAddress.Types.SHIPPING,
address="Vader Fortress",
address_town="Mustafar",
address_country="Mustafar",
address_state="Mustafar",
address_phone="612345678",
address_zip="00001",
address='Vader Fortress',
address_town='Mustafar',
address_country='Mustafar',
address_state='Mustafar',
address_phone='612345678',
address_zip='00001',
)
def test_update_customer_address(self):
self.client.force_login(self.user)
data = {
"full_name": "Anakin Skywalker",
"address": "Mos Eisley",
"address_town": "Mos Eisley",
"address_country": "Tatooine",
"address_state": "Tatooine",
"address_phone": "612345678",
"address_zip": "00001",
'full_name': 'Anakin Skywalker',
'address': 'Mos Eisley',
'address_town': 'Mos Eisley',
'address_country': 'Tatooine',
'address_state': 'Tatooine',
'address_phone': '612345678',
'address_zip': '00001',
}
response = self.client.post(
reverse(
"web:update_customer_address", kwargs={"pk": self.customer_address.pk}
),
data,
reverse('web:update_customer_address', kwargs={'pk': self.customer_address.pk}), data
)
assert response.status_code == 200
self.customer_address.refresh_from_db()
assert self.customer_address.full_name == data.get("full_name")
assert self.customer_address.address == data.get("address")
assert self.customer_address.address_town == data.get("address_town")
assert self.customer_address.address_state == data.get("address_state")
assert self.customer_address.address_phone == data.get("address_phone")
assert self.customer_address.full_name == data.get('full_name')
assert self.customer_address.address == data.get('address')
assert self.customer_address.address_town == data.get('address_town')
assert self.customer_address.address_state == data.get('address_state')
assert self.customer_address.address_phone == data.get('address_phone')
+2 -5
View File
@@ -9,14 +9,11 @@ class TestIndex(TestCase, CreateProductsMixin):
self.product = self.create_product()
def test_index_view(self):
response = self.client.get(reverse("web:index"))
response = self.client.get(reverse('web:index'))
assert response.status_code == 200
def test_product_detail_view(self):
response = self.client.get(
reverse(
"web:product_detail",
kwargs={"pk": self.product.pk, "slug": self.product.slug},
)
reverse('web:product_detail', kwargs={'pk': self.product.pk, 'slug': self.product.slug})
)
assert response.status_code == 200
+28 -79
View File
@@ -7,142 +7,91 @@ User = get_user_model()
class TestLogin(TestCase):
def setUp(self) -> None:
self.password = "theonering"
self.user = User.objects.create(
username="sauron",
email="sauron@mordor.middleearth",
)
self.password = 'theonering'
self.user = User.objects.create(username='sauron', email='sauron@mordor.middleearth')
self.user.set_password(self.password)
self.user.save()
def test_login(self):
response = self.client.post(
reverse("web:login"),
{
"username": self.user.username,
"password": self.password,
},
)
response = self.client.post(reverse('web:login'), {'username': self.user.username, 'password': self.password})
assert response.status_code == 302
assert response.url == reverse("web:index")
assert response.url == reverse('web:index')
def test_login_get(self):
response = self.client.get(reverse("web:login"))
response = self.client.get(reverse('web:login'))
assert response.status_code == 200
def test_login_already_logged_in(self):
response = self.client.post(
reverse("web:login"),
{
"username": self.user.username,
"password": self.password,
},
)
response = self.client.post(reverse('web:login'), {'username': self.user.username, 'password': self.password})
assert response.status_code == 302
assert response.url == reverse("web:index")
assert response.url == reverse('web:index')
response = self.client.get(reverse("web:login"))
response = self.client.get(reverse('web:login'))
assert response.status_code == 302
assert response.url == reverse("web:index")
assert response.url == reverse('web:index')
def test_login_failed(self):
response = self.client.post(
reverse("web:login"),
{
"username": self.user.username,
"password": "wrongpassword",
},
reverse('web:login'), {'username': self.user.username, 'password': 'wrongpassword'}
)
assert response.status_code == 400
def test_login_then_logout(self):
response = self.client.post(
reverse("web:login"),
{
"username": self.user.username,
"password": self.password,
},
)
response = self.client.post(reverse('web:login'), {'username': self.user.username, 'password': self.password})
assert response.status_code == 302
assert response.url == reverse("web:index")
assert response.url == reverse('web:index')
response = self.client.post(reverse("web:logout"))
response = self.client.post(reverse('web:logout'))
assert response.status_code == 302
assert response.url == reverse("web:index")
assert response.url == reverse('web:index')
def test_logout_already_logged_out(self):
response = self.client.post(reverse("web:logout"))
response = self.client.post(reverse('web:logout'))
assert response.status_code == 302
assert response.url == reverse("web:index")
assert response.url == reverse('web:index')
def test_login_then_get_logout(self):
response = self.client.post(
reverse("web:login"),
{
"username": self.user.username,
"password": self.password,
},
)
response = self.client.post(reverse('web:login'), {'username': self.user.username, 'password': self.password})
assert response.status_code == 302
assert response.url == reverse("web:index")
assert response.url == reverse('web:index')
response = self.client.get(reverse("web:logout"))
response = self.client.get(reverse('web:logout'))
assert response.status_code == 302
assert response.url == reverse("web:index")
assert response.url == reverse('web:index')
def test_login_then_get_my_account(self):
response = self.client.post(
reverse("web:login"),
{
"username": self.user.username,
"password": self.password,
},
)
response = self.client.post(reverse('web:login'), {'username': self.user.username, 'password': self.password})
assert response.status_code == 302
assert response.url == reverse("web:index")
assert response.url == reverse('web:index')
response = self.client.get(reverse("web:my_account"))
response = self.client.get(reverse('web:my_account'))
assert response.status_code == 200
def test_login_redirection_to_my_account(self):
url = f'{reverse("web:login")}?next={reverse("web:my_account")}'
response = self.client.post(
url,
{
"username": self.user.username,
"password": self.password,
},
)
response = self.client.post(url, {'username': self.user.username, 'password': self.password})
assert response.status_code == 302
assert (
response.url == f'{reverse("web:index")}?next={reverse("web:my_account")}'
)
assert response.url == f'{reverse("web:index")}?next={reverse("web:my_account")}'
response = self.client.get(response.url)
assert response.status_code == 302
assert response.url == reverse("web:my_account")
assert response.url == reverse('web:my_account')
def test_login_redirection_to_my_orders(self):
url = f'{reverse("web:login")}?next={reverse("web:orders")}'
response = self.client.post(
url,
{
"username": self.user.username,
"password": self.password,
},
)
response = self.client.post(url, {'username': self.user.username, 'password': self.password})
assert response.status_code == 302
assert response.url == f'{reverse("web:index")}?next={reverse("web:orders")}'
response = self.client.get(response.url)
assert response.status_code == 302
assert response.url == reverse("web:orders")
assert response.url == reverse('web:orders')
+3 -6
View File
@@ -12,14 +12,11 @@ class TestManifest(TestCase):
def setUp(self):
self.settings = WebSettings.load()
with open(
os.path.join(settings.BASE_DIR, "web", "tests", "images", "trolley.png"),
"rb",
) as f:
file = SimpleUploadedFile("logo.png", f.read())
with open(os.path.join(settings.BASE_DIR, 'web', 'tests', 'images', 'trolley.png'), 'rb') as f:
file = SimpleUploadedFile('logo.png', f.read())
self.settings.logo = file
self.settings.save()
def test_manifest_view(self):
response = self.client.get(reverse("web:manifest_json"))
response = self.client.get(reverse('web:manifest_json'))
assert response.status_code == 200
+53 -68
View File
@@ -4,91 +4,76 @@ from django.contrib.auth.models import User
from django.test import TestCase
from django.urls import reverse
from shop.models import (
Cart,
CartItem,
CustomerAddress,
Order,
ShippingMethod,
ShopSettings,
)
from shop.models import Cart, CartItem, CustomerAddress, Order, ShippingMethod, ShopSettings
from shop.tests.mixins import CreateProductsMixin
class TestOrders(TestCase, CreateProductsMixin):
def setUp(self):
self.product = self.create_product()
self.user = User.objects.create_user(
"anakin", "anakin@skywalker.com", "ihatesand"
)
self.user = User.objects.create_user('anakin', 'anakin@skywalker.com', 'ihatesand')
self.cart_for_user = self.create_cart(user=self.user)
self.anonymous_cart = self.create_cart()
self.address = CustomerAddress.objects.create(
vat_id="11111111H",
full_name="Vader",
address="Tatooine",
address_town="Mos Eisley",
address_zip="00001",
address_state="Tatooine",
address_country="Mos Eisley",
address_phone="00000000",
vat_id='11111111H',
full_name='Vader',
address='Tatooine',
address_town='Mos Eisley',
address_zip='00001',
address_state='Tatooine',
address_country='Mos Eisley',
address_phone='00000000',
address_type=CustomerAddress.Types.BILLING,
email=self.user.email,
default=True,
)
self.shipping_method = self.create_shipping_method()
self.settings = ShopSettings.load()
self.settings.shared_secret = "sq7HjrUOBfKmC576ILgskD5srU870gJ7" # Debug secret
self.settings.shared_secret = 'sq7HjrUOBfKmC576ILgskD5srU870gJ7' # Debug secret
self.settings.save()
def create_cart(self, user=None):
cart = Cart.objects.create(
user=user,
)
CartItem.objects.create(
cart=cart,
product=self.product,
quantity=1,
)
cart = Cart.objects.create(user=user)
CartItem.objects.create(cart=cart, product=self.product, quantity=1)
return cart
def create_shipping_method(self):
product = self.create_product(sku="SM1", name="SM1", price=Decimal("1.00"))
method = ShippingMethod.objects.create(name="SM 1", shipping_product=product)
product = self.create_product(sku='SM1', name='SM1', price=Decimal('1.00'))
method = ShippingMethod.objects.create(name='SM 1', shipping_product=product)
return method
def test_logged_user_orders_page(self):
self.client.force_login(self.user)
response = self.client.get(reverse("web:orders"))
response = self.client.get(reverse('web:orders'))
assert response.status_code == 200
def test_logged_user_create_get_order_page(self):
self.client.force_login(self.user)
response = self.client.get(reverse("web:cart_detail"))
response = self.client.get(reverse('web:cart_detail'))
assert response.status_code == 200
# Crear pedido
data = {
"email": self.user.email,
"shipping_address_full_name": self.address.full_name,
"shipping_address": self.address.address,
"shipping_address_town": self.address.address_town,
"shipping_address_zip": self.address.address_zip,
"shipping_address_state": self.address.address_state,
"shipping_address_country": self.address.address_country,
"shipping_address_phone": self.address.address_phone,
"same_as_shipping": True,
"billing_address_full_name": self.address.full_name,
"billing_address": self.address.address,
"billing_address_town": self.address.address_town,
"billing_address_zip": self.address.address_zip,
"billing_address_state": self.address.address_state,
"billing_address_country": self.address.address_country,
"billing_address_phone": self.address.address_phone,
"shipping_method": self.shipping_method.pk,
'email': self.user.email,
'shipping_address_full_name': self.address.full_name,
'shipping_address': self.address.address,
'shipping_address_town': self.address.address_town,
'shipping_address_zip': self.address.address_zip,
'shipping_address_state': self.address.address_state,
'shipping_address_country': self.address.address_country,
'shipping_address_phone': self.address.address_phone,
'same_as_shipping': True,
'billing_address_full_name': self.address.full_name,
'billing_address': self.address.address,
'billing_address_town': self.address.address_town,
'billing_address_zip': self.address.address_zip,
'billing_address_state': self.address.address_state,
'billing_address_country': self.address.address_country,
'billing_address_phone': self.address.address_phone,
'shipping_method': self.shipping_method.pk,
}
response = self.client.post(reverse("web:cart_detail"), data)
response = self.client.post(reverse('web:cart_detail'), data)
assert response.status_code == 302
order = Order.objects.filter(user=self.user).first()
@@ -99,30 +84,30 @@ class TestOrders(TestCase, CreateProductsMixin):
def test_logged_user_create_get_order_page_invalid_data(self):
self.client.force_login(self.user)
response = self.client.get(reverse("web:cart_detail"))
response = self.client.get(reverse('web:cart_detail'))
assert response.status_code == 200
# Sin e-mail
data = {
"shipping_address_full_name": self.address.full_name,
"shipping_address": self.address.address,
"shipping_address_town": self.address.address_town,
"shipping_address_zip": self.address.address_zip,
"shipping_address_state": self.address.address_state,
"shipping_address_country": self.address.address_country,
"shipping_address_phone": self.address.address_phone,
"same_as_shipping": True,
"billing_address_full_name": self.address.full_name,
"billing_address": self.address.address,
"billing_address_town": self.address.address_town,
"billing_address_zip": self.address.address_zip,
"billing_address_state": self.address.address_state,
"billing_address_country": self.address.address_country,
"billing_address_phone": self.address.address_phone,
"shipping_method": self.shipping_method.pk,
'shipping_address_full_name': self.address.full_name,
'shipping_address': self.address.address,
'shipping_address_town': self.address.address_town,
'shipping_address_zip': self.address.address_zip,
'shipping_address_state': self.address.address_state,
'shipping_address_country': self.address.address_country,
'shipping_address_phone': self.address.address_phone,
'same_as_shipping': True,
'billing_address_full_name': self.address.full_name,
'billing_address': self.address.address,
'billing_address_town': self.address.address_town,
'billing_address_zip': self.address.address_zip,
'billing_address_state': self.address.address_state,
'billing_address_country': self.address.address_country,
'billing_address_phone': self.address.address_phone,
'shipping_method': self.shipping_method.pk,
}
response = self.client.post(reverse("web:cart_detail"), data)
response = self.client.post(reverse('web:cart_detail'), data)
assert response.status_code == 200
assert not Order.objects.filter(user=self.user).exists()
+42 -60
View File
@@ -7,124 +7,106 @@ User = get_user_model()
class TestRegister(TransactionTestCase):
def setUp(self) -> None:
self.password = "theonering"
self.email = "sauron@mordor.middleearth"
self.first_name = "Sauron"
self.last_name = "The Lord of the Rings"
self.password = 'theonering'
self.email = 'sauron@mordor.middleearth'
self.first_name = 'Sauron'
self.last_name = 'The Lord of the Rings'
def test_get_register_page(self):
response = self.client.get(reverse("web:register"))
response = self.client.get(reverse('web:register'))
assert response.status_code == 200
def test_create_user_account(self):
response = self.client.post(
reverse("web:register"),
reverse('web:register'),
{
"email": self.email,
"password1": self.password,
"password2": self.password,
"first_name": self.first_name,
"last_name": self.last_name,
'email': self.email,
'password1': self.password,
'password2': self.password,
'first_name': self.first_name,
'last_name': self.last_name,
},
)
user = User.objects.filter(
username=self.email,
email=self.email,
first_name=self.first_name,
last_name=self.last_name,
username=self.email, email=self.email, first_name=self.first_name, last_name=self.last_name
).first()
assert user is not None
assert response.status_code == 302
assert response.url == reverse("web:login")
assert response.url == reverse('web:login')
def test_create_user_account_distinct_password(self):
response = self.client.post(
reverse("web:register"),
reverse('web:register'),
{
"email": self.email,
"password1": self.password,
"password2": "otherpassword",
"first_name": self.first_name,
"last_name": self.last_name,
'email': self.email,
'password1': self.password,
'password2': 'otherpassword',
'first_name': self.first_name,
'last_name': self.last_name,
},
)
assert not User.objects.filter(
username=self.email,
email=self.email,
first_name=self.first_name,
last_name=self.last_name,
username=self.email, email=self.email, first_name=self.first_name, last_name=self.last_name
).exists()
assert response.status_code == 400
def test_create_user_account_no_first_name(self):
response = self.client.post(
reverse("web:register"),
reverse('web:register'),
{
"email": self.email,
"password1": self.password,
"password2": "otherpassword",
"first_name": "",
"last_name": self.last_name,
'email': self.email,
'password1': self.password,
'password2': 'otherpassword',
'first_name': '',
'last_name': self.last_name,
},
)
assert not User.objects.filter(
username=self.email,
email=self.email,
first_name="",
last_name=self.last_name,
username=self.email, email=self.email, first_name='', last_name=self.last_name
).exists()
assert response.status_code == 400
def test_create_user_account_no_last_name(self):
response = self.client.post(
reverse("web:register"),
reverse('web:register'),
{
"email": self.email,
"password1": self.password,
"password2": self.password,
"first_name": self.first_name,
"last_name": "",
'email': self.email,
'password1': self.password,
'password2': self.password,
'first_name': self.first_name,
'last_name': '',
},
)
assert not User.objects.filter(
username=self.email,
email=self.email,
first_name=self.first_name,
last_name="",
username=self.email, email=self.email, first_name=self.first_name, last_name=''
).exists()
assert response.status_code == 400
def test_create_user_account_already_existing(self):
assert User.objects.all().count() == 0
User.objects.create_user(
email=self.email,
username=self.email,
)
User.objects.create_user(email=self.email, username=self.email)
response = self.client.post(
reverse("web:register"),
reverse('web:register'),
{
"email": self.email,
"password1": self.password,
"password2": self.password,
"first_name": self.first_name,
"last_name": self.last_name,
'email': self.email,
'password1': self.password,
'password2': self.password,
'first_name': self.first_name,
'last_name': self.last_name,
},
)
assert not User.objects.filter(
username=self.email,
email=self.email,
first_name=self.first_name,
last_name="",
username=self.email, email=self.email, first_name=self.first_name, last_name=''
).exists()
assert response.status_code == 400
+22 -57
View File
@@ -10,53 +10,36 @@ User = get_user_model()
class TestResetPassword(TransactionTestCase):
def setUp(self) -> None:
self.password = "theonering"
self.email = "sauron@mordor.middleearth"
self.first_name = "Sauron"
self.last_name = "The Lord of the Rings"
self.password = 'theonering'
self.email = 'sauron@mordor.middleearth'
self.first_name = 'Sauron'
self.last_name = 'The Lord of the Rings'
self.user = User.objects.create_user(
username=self.email,
password=self.password,
first_name=self.first_name,
last_name=self.last_name,
username=self.email, password=self.password, first_name=self.first_name, last_name=self.last_name
)
def test_get_reset_password_page(self):
response = self.client.get(reverse("web:reset_password"))
response = self.client.get(reverse('web:reset_password'))
assert response.status_code == 200
def test_reset_password(self):
response = self.client.post(
reverse("web:reset_password"),
{
"email": self.email,
},
)
response = self.client.post(reverse('web:reset_password'), {'email': self.email})
assert response.status_code == 302
assert response.url == reverse("web:reset_password_email_sent")
assert response.url == reverse('web:reset_password_email_sent')
def test_reset_password_not_existing_user(self):
response = self.client.post(
reverse("web:reset_password"),
{
"email": "vanpiro@noesiten.com",
},
)
response = self.client.post(reverse('web:reset_password'), {'email': 'vanpiro@noesiten.com'})
assert response.status_code == 302
assert response.url == reverse("web:reset_password_email_sent")
assert response.url == reverse('web:reset_password_email_sent')
def test_reset_password_confirm_get(self):
token = default_token_generator.make_token(self.user)
uidb64 = urlsafe_base64_encode(force_bytes(self.user.pk))
response = self.client.get(
reverse(
"web:reset_password_confirm", kwargs={"uidb64": uidb64, "token": token}
),
)
response = self.client.get(reverse('web:reset_password_confirm', kwargs={'uidb64': uidb64, 'token': token}))
assert response.status_code == 200
@@ -65,20 +48,14 @@ class TestResetPassword(TransactionTestCase):
form_token = default_token_generator.make_token(self.user)
uidb64 = urlsafe_base64_encode(force_bytes(self.user.pk))
new_password = "89733wy29"
new_password = '89733wy29'
response = self.client.post(
reverse(
"web:reset_password_confirm", kwargs={"uidb64": uidb64, "token": token}
),
{
"token": form_token,
"new_password1": new_password,
"new_password2": new_password,
},
reverse('web:reset_password_confirm', kwargs={'uidb64': uidb64, 'token': token}),
{'token': form_token, 'new_password1': new_password, 'new_password2': new_password},
)
assert response.status_code == 302
assert response.url == reverse("web:login")
assert response.url == reverse('web:login')
self.user.refresh_from_db()
assert self.user.check_password(new_password)
@@ -88,35 +65,23 @@ class TestResetPassword(TransactionTestCase):
form_token = default_token_generator.make_token(self.user)
uidb64 = urlsafe_base64_encode(force_bytes(self.user.pk))
new_password = "89733wy29"
new_password = '89733wy29'
response = self.client.post(
reverse(
"web:reset_password_confirm", kwargs={"uidb64": uidb64, "token": token}
),
{
"token": form_token,
"new_password1": new_password,
"new_password2": "otherpassw13",
},
reverse('web:reset_password_confirm', kwargs={'uidb64': uidb64, 'token': token}),
{'token': form_token, 'new_password1': new_password, 'new_password2': 'otherpassw13'},
)
assert response.status_code == 200
def test_reset_password_confirm_invalid_token(self):
token = default_token_generator.make_token(self.user)
form_token = "invalid token"
form_token = 'invalid token'
uidb64 = urlsafe_base64_encode(force_bytes(self.user.pk))
new_password = "89733wy29"
new_password = '89733wy29'
response = self.client.post(
reverse(
"web:reset_password_confirm", kwargs={"uidb64": uidb64, "token": token}
),
{
"token": form_token,
"new_password1": new_password,
"new_password2": new_password,
},
reverse('web:reset_password_confirm', kwargs={'uidb64': uidb64, 'token': token}),
{'token': form_token, 'new_password1': new_password, 'new_password2': new_password},
)
assert response.status_code == 200
+7 -11
View File
@@ -7,25 +7,21 @@ from shop.tests.mixins import CreateProductsMixin
class TestUserInfo(TestCase, CreateProductsMixin):
def setUp(self):
self.user = User.objects.create_user("vader", "darth@vader.com", "ihatesand")
self.user = User.objects.create_user('vader', 'darth@vader.com', 'ihatesand')
def test_update_user_info(self):
self.client.force_login(self.user)
response = self.client.get(reverse("web:user_info_component"))
response = self.client.get(reverse('web:user_info_component'))
assert response.status_code == 200
data = {
"first_name": "Anakin",
"last_name": "Skywalker",
"email": "anakin@skywalker.com",
}
data = {'first_name': 'Anakin', 'last_name': 'Skywalker', 'email': 'anakin@skywalker.com'}
response = self.client.post(reverse("web:user_info_component"), data)
response = self.client.post(reverse('web:user_info_component'), data)
assert response.status_code == 200
self.user.refresh_from_db()
assert self.user.first_name == data.get("first_name")
assert self.user.last_name == data.get("last_name")
assert self.user.email == data.get("email")
assert self.user.first_name == data.get('first_name')
assert self.user.last_name == data.get('last_name')
assert self.user.email == data.get('email')
+13 -38
View File
@@ -9,77 +9,52 @@ 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")
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})
)
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,
)
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})
)
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,
},
)
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()
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,
},
)
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
)
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})
)
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()
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"))
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"))
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"))
response = self.client.get(reverse('web:list_wishlisted_products'))
assert response.status_code == 200