fix: html refactor
This commit is contained in:
@@ -466,11 +466,8 @@ class Payment(models.Model):
|
|||||||
'shop.Order', on_delete=models.PROTECT, verbose_name=_('pedido'), related_name='payments'
|
'shop.Order', on_delete=models.PROTECT, verbose_name=_('pedido'), related_name='payments'
|
||||||
)
|
)
|
||||||
user = models.ForeignKey(User, blank=True, null=True, on_delete=models.PROTECT, verbose_name=_('cliente'))
|
user = models.ForeignKey(User, blank=True, null=True, on_delete=models.PROTECT, verbose_name=_('cliente'))
|
||||||
|
|
||||||
creation_date = models.DateTimeField(auto_now_add=True, verbose_name=_('Fecha de creación'))
|
creation_date = models.DateTimeField(auto_now_add=True, verbose_name=_('Fecha de creación'))
|
||||||
|
|
||||||
metadata = models.JSONField(default=dict, verbose_name=_('Metadata'))
|
metadata = models.JSONField(default=dict, verbose_name=_('Metadata'))
|
||||||
|
|
||||||
method = models.CharField(
|
method = models.CharField(
|
||||||
max_length=6, choices=MethodChoices.choices, default=MethodChoices.REDSYS, verbose_name=_('método de pago')
|
max_length=6, choices=MethodChoices.choices, default=MethodChoices.REDSYS, verbose_name=_('método de pago')
|
||||||
)
|
)
|
||||||
|
|||||||
+43
-18
@@ -8,13 +8,19 @@ User = get_user_model()
|
|||||||
class TestLogin(TestCase):
|
class TestLogin(TestCase):
|
||||||
def setUp(self) -> None:
|
def setUp(self) -> None:
|
||||||
self.password = 'theonering'
|
self.password = 'theonering'
|
||||||
self.user = User.objects.create(username='sauron', email='sauron@mordor.middleearth')
|
self.user = User.objects.create(
|
||||||
|
username='sauron',
|
||||||
|
email='sauron@mordor.middleearth'
|
||||||
|
)
|
||||||
|
|
||||||
self.user.set_password(self.password)
|
self.user.set_password(self.password)
|
||||||
self.user.save()
|
self.user.save()
|
||||||
|
|
||||||
def test_login(self):
|
def test_login(self):
|
||||||
response = self.client.post(reverse('users:login'), {'username': self.user.username, 'password': self.password})
|
response = self.client.post(reverse('users:login'), {
|
||||||
|
'username': self.user.username,
|
||||||
|
'password': self.password
|
||||||
|
})
|
||||||
|
|
||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
assert response.url == reverse('web:index')
|
assert response.url == reverse('web:index')
|
||||||
@@ -24,7 +30,10 @@ class TestLogin(TestCase):
|
|||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
|
|
||||||
def test_login_already_logged_in(self):
|
def test_login_already_logged_in(self):
|
||||||
response = self.client.post(reverse('users:login'), {'username': self.user.username, 'password': self.password})
|
response = self.client.post(reverse('users:login'), {
|
||||||
|
'username': self.user.username,
|
||||||
|
'password': self.password
|
||||||
|
})
|
||||||
|
|
||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
assert response.url == reverse('web:index')
|
assert response.url == reverse('web:index')
|
||||||
@@ -34,60 +43,76 @@ class TestLogin(TestCase):
|
|||||||
assert response.url == reverse('web:index')
|
assert response.url == reverse('web:index')
|
||||||
|
|
||||||
def test_login_failed(self):
|
def test_login_failed(self):
|
||||||
response = self.client.post(
|
response = self.client.post(reverse('users:login'), {
|
||||||
reverse('users:login'), {'username': self.user.username, 'password': 'wrongpassword'}
|
'username': self.user.username,
|
||||||
)
|
'password': 'wrongpassword'
|
||||||
|
})
|
||||||
|
|
||||||
assert response.status_code == 400
|
assert response.status_code == 400
|
||||||
|
|
||||||
def test_login_then_logout(self):
|
def test_login_then_logout(self):
|
||||||
response = self.client.post(reverse('users:login'), {'username': self.user.username, 'password': self.password})
|
response = self.client.post(reverse('users:login'), {
|
||||||
|
'username': self.user.username,
|
||||||
|
'password': self.password
|
||||||
|
})
|
||||||
|
|
||||||
assert response.status_code == 302
|
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('users:logout'))
|
||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
assert response.url == reverse('web:index')
|
assert response.url == reverse('web:index')
|
||||||
|
|
||||||
def test_logout_already_logged_out(self):
|
def test_logout_already_logged_out(self):
|
||||||
response = self.client.post(reverse('web:logout'))
|
response = self.client.post(reverse('users:logout'))
|
||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
assert response.url == reverse('web:index')
|
assert response.url == reverse('web:index')
|
||||||
|
|
||||||
def test_login_then_get_logout(self):
|
def test_login_then_get_logout(self):
|
||||||
response = self.client.post(reverse('users:login'), {'username': self.user.username, 'password': self.password})
|
response = self.client.post(reverse('users:login'), {
|
||||||
|
'username': self.user.username,
|
||||||
|
'password': self.password
|
||||||
|
})
|
||||||
|
|
||||||
assert response.status_code == 302
|
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('users:logout'))
|
||||||
assert response.status_code == 302
|
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):
|
def test_login_then_get_my_account(self):
|
||||||
response = self.client.post(reverse('users:login'), {'username': self.user.username, 'password': self.password})
|
response = self.client.post(reverse('users:login'), {
|
||||||
|
'username': self.user.username,
|
||||||
|
'password': self.password
|
||||||
|
})
|
||||||
|
|
||||||
assert response.status_code == 302
|
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('users:my_account'))
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
|
|
||||||
def test_login_redirection_to_my_account(self):
|
def test_login_redirection_to_my_account(self):
|
||||||
url = f'{reverse("users:login")}?next={reverse("web:my_account")}'
|
url = f'{reverse("users:login")}?next={reverse("users: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.status_code == 302
|
||||||
assert response.url == f'{reverse("web:index")}?next={reverse("web:my_account")}'
|
assert response.url == f'{reverse("web:index")}?next={reverse("users:my_account")}'
|
||||||
|
|
||||||
response = self.client.get(response.url)
|
response = self.client.get(response.url)
|
||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
assert response.url == reverse('web:my_account')
|
assert response.url == reverse('users:my_account')
|
||||||
|
|
||||||
def test_login_redirection_to_my_orders(self):
|
def test_login_redirection_to_my_orders(self):
|
||||||
url = f'{reverse("users:login")}?next={reverse("web:orders")}'
|
url = f'{reverse("users: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.status_code == 302
|
||||||
assert response.url == f'{reverse("web:index")}?next={reverse("web:orders")}'
|
assert response.url == f'{reverse("web:index")}?next={reverse("web:orders")}'
|
||||||
|
|||||||
@@ -3,10 +3,9 @@
|
|||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input type="hidden" name="product" value="{{ product.pk }}">
|
<input type="hidden" name="product" value="{{ product.pk }}">
|
||||||
|
|
||||||
<div class="flex">
|
<div class="flex items-center">
|
||||||
<input class="input" id="quantity" aria-label="quantity" type="number" min="1" max="10" name="quantity" value="1">
|
<input class="input mr-4" id="quantity" aria-label="quantity" type="number" min="1" max="10" name="quantity" value="1">
|
||||||
<button class="btn btn-primary"
|
<button class="btn btn-primary">
|
||||||
>
|
|
||||||
{% include 'components/icons/add_cart.svg' %}
|
{% include 'components/icons/add_cart.svg' %}
|
||||||
{% translate 'Añadir al carrito' %}
|
{% translate 'Añadir al carrito' %}
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<div class="space-y-6">
|
<div class="space-y-6">
|
||||||
|
|
||||||
{% for item in items %}
|
{% for item in items %}
|
||||||
<div class="rounded-lg p-4 shadow-sm md:p-6">
|
<div class="rounded-lg p-4 shadow-md md:p-6">
|
||||||
<div class="space-y-4 flex items-center justify-between gap-6 space-y-0">
|
<div class="space-y-4 flex items-center justify-between gap-6 space-y-0">
|
||||||
<a href="{% url 'web:product_detail' pk=item.product.pk slug=item.product.slug %}"
|
<a href="{% url 'web:product_detail' pk=item.product.pk slug=item.product.slug %}"
|
||||||
class="shrink-0 md:order-1">
|
class="shrink-0 md:order-1">
|
||||||
@@ -155,10 +155,10 @@
|
|||||||
{% translate 'País' %}
|
{% translate 'País' %}
|
||||||
</label>
|
</label>
|
||||||
<input type="text" name="shipping_address_country" id="shipping_address_country"
|
<input type="text" name="shipping_address_country" id="shipping_address_country"
|
||||||
class="input"
|
class="input"
|
||||||
placeholder="{% translate 'País' %}"
|
placeholder="{% translate 'País' %}"
|
||||||
value="{% if shipping_address %}{{ shipping_address.address_country }}{% endif %}"
|
value="{% if shipping_address %}{{ shipping_address.address_country }}{% endif %}"
|
||||||
required=""
|
required=""
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -276,7 +276,7 @@
|
|||||||
<!-- Resumen del pedido -->
|
<!-- Resumen del pedido -->
|
||||||
<div class="mx-auto mt-6 max-w-4xl flex-1 space-y-6 lg:mt-0 lg:w-full">
|
<div class="mx-auto mt-6 max-w-4xl flex-1 space-y-6 lg:mt-0 lg:w-full">
|
||||||
<div
|
<div
|
||||||
class="space-y-4 rounded-lg p-4 shadow-sm sm:p-6">
|
class="space-y-4 rounded-lg p-4 shadow-md sm:p-6">
|
||||||
<p class="text-xl font-semibold ">
|
<p class="text-xl font-semibold ">
|
||||||
{% translate 'Resumen del pedido' %}
|
{% translate 'Resumen del pedido' %}
|
||||||
</p>
|
</p>
|
||||||
@@ -324,10 +324,13 @@
|
|||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button
|
<div class="flex justify-center items-center">
|
||||||
class="flex w-full items-center justify-center rounded-lg px-5 py-2.5 text-sm font-medium text-white hover: focus:outline-none focus:ring-4 focus:ring-primary-300 : :ring-primary-800 cursor-pointer">
|
<button
|
||||||
{% translate 'Terminar pedido' %}
|
class="btn btn-primary">
|
||||||
</button>
|
{% translate 'Terminar pedido' %}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="flex items-center justify-center gap-2">
|
<div class="flex items-center justify-center gap-2">
|
||||||
<span class="text-sm font-normal "> {% translate 'o' %} </span>
|
<span class="text-sm font-normal "> {% translate 'o' %} </span>
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
<div id="tooltipRemoveItem1a" role="tooltip"
|
<div id="tooltipRemoveItem1a" role="tooltip"
|
||||||
class="tooltip invisible absolute z-10 inline-block rounded-lg px-3 py-2 text-sm font-medium
|
class="tooltip invisible absolute z-10 inline-block rounded-lg px-3 py-2 text-sm font-medium
|
||||||
text-white opacity-0 shadow-sm transition-opacity duration-300 "
|
text-white opacity-0 shadow-md transition-opacity duration-300 "
|
||||||
>
|
>
|
||||||
{% translate 'Quitar del carrito' %}
|
{% translate 'Quitar del carrito' %}
|
||||||
<div class="tooltip-arrow" data-popper-arrow></div>
|
<div class="tooltip-arrow" data-popper-arrow></div>
|
||||||
|
|||||||
@@ -1,24 +1,19 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
<nav class="navbar bg-base-100 shadow-sm">
|
<nav class="flex justify-between navbar bg-base-300 shadow-md px-4 fixed top-0 z-10 left-0 w-full">
|
||||||
<div class="flex-1">
|
<div class="text-base-content">
|
||||||
|
|
||||||
<a href="{% url 'web:index' %}" class="flex text-xl">
|
<a href="{% url 'web:index' %}" class="flex text-xl">
|
||||||
<img class="mr-4" src="{{ logo }}" alt="{{ web_title }} logo">
|
<img class="mr-4" src="{{ logo }}" alt="{{ web_title }} logo">
|
||||||
{{ web_title }}
|
{{ web_title }}
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex gap-2">
|
<div class="flex gap-2">
|
||||||
<input type="text" placeholder="{% trans 'Buscar...' %}" class="input input-bordered w-24 md:w-auto"/>
|
|
||||||
|
|
||||||
{% include 'components/generic/theme-switch.html' %}
|
{% include 'components/generic/theme-switch.html' %}
|
||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
{% include 'components/generic/user_dropdown.html' %}
|
{% include 'components/generic/user_dropdown.html' %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% url 'users:login' %}"
|
<a href="{% url 'users:login' %}" class="link-button flex items-center">
|
||||||
class="link-button flex items-center">
|
|
||||||
{% translate 'Inicia sesión' %}
|
{% translate 'Inicia sesión' %}
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -1,43 +1,24 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
<article>
|
<article class="rounded-lg border-primary p-6 shadow-sm">
|
||||||
<div
|
|
||||||
>
|
|
||||||
<div class="h-56 w-full ">
|
|
||||||
<a href="{% url 'web:product_detail' pk=product.pk slug=product.slug %}">
|
|
||||||
<img class="mx-auto h-full " src="{{ product.images.all.0.m.url }}"
|
|
||||||
alt="{{ product.name }}"/>
|
|
||||||
<img class="mx-auto hidden h-full " src="{{ product.images.all.0.m_dark.url }}"
|
|
||||||
alt="{{ product.name }}"/>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div class="pt-6">
|
|
||||||
|
|
||||||
<a href="{% url 'web:product_detail' pk=product.pk slug=product.slug %}"
|
<a class="h-56 w-full" href="{% url 'web:product_detail' pk=product.pk slug=product.slug %}">
|
||||||
class="link">{{ product.name }}</a>
|
<img class="mx-auto h-full " src="{{ product.images.all.0.m.url }}"
|
||||||
|
alt="{{ product.name }}"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
<!-- <div class="mt-2 flex items-center gap-2">-->
|
<div class="pt-6 flex justify-between">
|
||||||
<!-- <div class="flex items-center">-->
|
<a href="{% url 'web:product_detail' pk=product.pk slug=product.slug %}"
|
||||||
<!-- {% include 'components/icons/star.svg' %}-->
|
class="link">
|
||||||
<!-- {% include 'components/icons/star.svg' %}-->
|
<h1>{{ product.name }}</h1>
|
||||||
<!-- {% include 'components/icons/star.svg' %}-->
|
|
||||||
<!-- {% include 'components/icons/star.svg' %}-->
|
|
||||||
<!-- {% include 'components/icons/star.svg' %}-->
|
|
||||||
<!-- </div>-->
|
|
||||||
|
|
||||||
<!-- <p class="text-sm font-medium ">5.0</p>-->
|
</a>
|
||||||
<!-- <p class="text-sm font-medium ">(455)</p>-->
|
<p class="txt-2xl">
|
||||||
<!-- </div>-->
|
{% with product.current_prices.0 as price %}
|
||||||
<div class="mt-4 flex gap-4">
|
{{ price.price_with_tax }} €
|
||||||
<p class="txt-2xl">
|
{% endwith %}
|
||||||
{% with product.current_prices.0 as price %}
|
</p>
|
||||||
{{ price.price_with_tax }} €
|
</div>
|
||||||
{% endwith %}
|
<div class="mt-4">
|
||||||
</p>
|
{% include 'components/cart/add_to_cart.html' %}
|
||||||
</div>
|
|
||||||
<div class="mt-4">
|
|
||||||
{% include 'components/cart/add_to_cart.html' %}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
{% block main %}
|
{% block main %}
|
||||||
{% include 'components/generic/navbar.html' %}
|
{% include 'components/generic/navbar.html' %}
|
||||||
<div>
|
<div class="mt-24">
|
||||||
{% include 'components/products/list_filters.html' %}
|
{% include 'components/products/list_filters.html' %}
|
||||||
<section
|
<section
|
||||||
class="px-8"
|
class="px-8"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
<ul class="product-grid">
|
<ul class="mb-4 grid gap-4 sm:grid-cols-2 md:mb-8 lg:grid-cols-3 xl:grid-cols-4 3xl:grid-cols-5">
|
||||||
{% for product in page %}
|
{% for product in page %}
|
||||||
<li>
|
<li>
|
||||||
{% include 'components/product_card.html' %}
|
{% include 'components/product_card.html' %}
|
||||||
@@ -12,7 +12,6 @@
|
|||||||
<div class="flex justify-center items-center">
|
<div class="flex justify-center items-center">
|
||||||
{% if has_previous_page %}
|
{% if has_previous_page %}
|
||||||
<button type="button"
|
<button type="button"
|
||||||
|
|
||||||
hx-get="{% url 'web:list_products' %}{% querystring page=page.previous_page_number %}"
|
hx-get="{% url 'web:list_products' %}{% querystring page=page.previous_page_number %}"
|
||||||
hx-trigger="click"
|
hx-trigger="click"
|
||||||
hx-target="#products"
|
hx-target="#products"
|
||||||
@@ -23,11 +22,10 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% if has_next_page %}
|
{% if has_next_page %}
|
||||||
<button type="button"
|
<button type="button"
|
||||||
|
hx-get="{% url 'web:list_products' %}{% querystring page=page.next_page_number %}"
|
||||||
hx-get="{% url 'web:list_products' %}{% querystring page=page.next_page_number %}"
|
hx-trigger="click"
|
||||||
hx-trigger="click"
|
hx-target="#products"
|
||||||
hx-target="#products"
|
hx-swap="innerHTML"
|
||||||
hx-swap="innerHTML"
|
|
||||||
>
|
>
|
||||||
{% translate 'Siguiente' %}
|
{% translate 'Siguiente' %}
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
{% for item in items %}
|
{% for item in items %}
|
||||||
<div
|
<div
|
||||||
class="rounded-lg p-4 shadow-sm md:p-6">
|
class="rounded-lg p-4 shadow-md md:p-6">
|
||||||
<div class="space-y-4 md:flex md:items-center md:justify-between md:gap-6 md:space-y-0">
|
<div class="space-y-4 md:flex md:items-center md:justify-between md:gap-6 md:space-y-0">
|
||||||
<a href="#" class="shrink-0 md:order-1">
|
<a href="#" class="shrink-0 md:order-1">
|
||||||
<img class="h-20 w-20 " src="{{ item.product.images.all.0.s.url }}"
|
<img class="h-20 w-20 " src="{{ item.product.images.all.0.s.url }}"
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
<!-- Resumen del pedido -->
|
<!-- Resumen del pedido -->
|
||||||
<div class="mx-auto mt-6 max-w-4xl flex-1 space-y-6 lg:mt-0 lg:w-full">
|
<div class="mx-auto mt-6 max-w-4xl flex-1 space-y-6 lg:mt-0 lg:w-full">
|
||||||
<div
|
<div
|
||||||
class="space-y-4 rounded-lg p-4 shadow-sm sm:p-6">
|
class="space-y-4 rounded-lg p-4 shadow-md sm:p-6">
|
||||||
<p class="text-xl font-semibold ">
|
<p class="text-xl font-semibold ">
|
||||||
{% translate 'Resumen del pedido' %}</p>
|
{% translate 'Resumen del pedido' %}</p>
|
||||||
|
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
<input type="hidden" name="Ds_MerchantParameters" value="{{ merchant_parameters }}"/>
|
<input type="hidden" name="Ds_MerchantParameters" value="{{ merchant_parameters }}"/>
|
||||||
<input type="hidden" name="Ds_Signature" value="{{ signature }}"/>
|
<input type="hidden" name="Ds_Signature" value="{{ signature }}"/>
|
||||||
|
|
||||||
<button class="flex w-full items-center justify-center rounded-lg px-5 py-2.5 text-sm font-medium text-white hover: focus:outline-none focus:ring-4 focus:ring-primary-300 : :ring-primary-800 cursor-pointer">
|
<button class="btn btn-primary">
|
||||||
{% translate 'Pagar' %}
|
{% translate 'Pagar' %}
|
||||||
</button>
|
</button>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -46,12 +46,12 @@ class TestLogin(TestCase):
|
|||||||
assert response.status_code == 302
|
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('users:logout'))
|
||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
assert response.url == reverse('web:index')
|
assert response.url == reverse('web:index')
|
||||||
|
|
||||||
def test_logout_already_logged_out(self):
|
def test_logout_already_logged_out(self):
|
||||||
response = self.client.post(reverse('web:logout'))
|
response = self.client.post(reverse('users:logout'))
|
||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
assert response.url == reverse('web:index')
|
assert response.url == reverse('web:index')
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ class TestLogin(TestCase):
|
|||||||
assert response.status_code == 302
|
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('users:logout'))
|
||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
assert response.url == reverse('web:index')
|
assert response.url == reverse('web:index')
|
||||||
|
|
||||||
@@ -71,19 +71,19 @@ class TestLogin(TestCase):
|
|||||||
assert response.status_code == 302
|
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('users:my_account'))
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
|
|
||||||
def test_login_redirection_to_my_account(self):
|
def test_login_redirection_to_my_account(self):
|
||||||
url = f'{reverse("users:login")}?next={reverse("web:my_account")}'
|
url = f'{reverse("users:login")}?next={reverse("users: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.status_code == 302
|
||||||
assert response.url == f'{reverse("web:index")}?next={reverse("web:my_account")}'
|
assert response.url == f'{reverse("web:index")}?next={reverse("users:my_account")}'
|
||||||
|
|
||||||
response = self.client.get(response.url)
|
response = self.client.get(response.url)
|
||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
assert response.url == reverse('web:my_account')
|
assert response.url == reverse('users:my_account')
|
||||||
|
|
||||||
def test_login_redirection_to_my_orders(self):
|
def test_login_redirection_to_my_orders(self):
|
||||||
url = f'{reverse("users:login")}?next={reverse("web:orders")}'
|
url = f'{reverse("users:login")}?next={reverse("web:orders")}'
|
||||||
|
|||||||
Reference in New Issue
Block a user