feat: ruff'ed
This commit is contained in:
+20
-47
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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
@@ -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')
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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,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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user