feat: login redirection
This commit is contained in:
+48
-15
@@ -1,12 +1,11 @@
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.shortcuts import reverse
|
||||
from rest_framework import status
|
||||
from rest_framework.test import APITestCase
|
||||
from django.test import TestCase
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
|
||||
class TestLogin(APITestCase):
|
||||
class TestLogin(TestCase):
|
||||
def setUp(self) -> None:
|
||||
self.password = "theonering"
|
||||
self.user = User.objects.create(
|
||||
@@ -26,12 +25,12 @@ class TestLogin(APITestCase):
|
||||
},
|
||||
)
|
||||
|
||||
assert response.status_code == status.HTTP_302_FOUND
|
||||
assert response.status_code == 302
|
||||
assert response.url == reverse("web:index")
|
||||
|
||||
def test_login_get(self):
|
||||
response = self.client.get(reverse("web:login"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.status_code == 200
|
||||
|
||||
def test_login_already_logged_in(self):
|
||||
response = self.client.post(
|
||||
@@ -42,11 +41,11 @@ class TestLogin(APITestCase):
|
||||
},
|
||||
)
|
||||
|
||||
assert response.status_code == status.HTTP_302_FOUND
|
||||
assert response.status_code == 302
|
||||
assert response.url == reverse("web:index")
|
||||
|
||||
response = self.client.get(reverse("web:login"))
|
||||
assert response.status_code == status.HTTP_302_FOUND
|
||||
assert response.status_code == 302
|
||||
assert response.url == reverse("web:index")
|
||||
|
||||
def test_login_failed(self):
|
||||
@@ -58,7 +57,7 @@ class TestLogin(APITestCase):
|
||||
},
|
||||
)
|
||||
|
||||
assert response.status_code == status.HTTP_400_BAD_REQUEST
|
||||
assert response.status_code == 400
|
||||
|
||||
def test_login_then_logout(self):
|
||||
response = self.client.post(
|
||||
@@ -69,16 +68,16 @@ class TestLogin(APITestCase):
|
||||
},
|
||||
)
|
||||
|
||||
assert response.status_code == status.HTTP_302_FOUND
|
||||
assert response.status_code == 302
|
||||
assert response.url == reverse("web:index")
|
||||
|
||||
response = self.client.post(reverse("web:logout"))
|
||||
assert response.status_code == status.HTTP_302_FOUND
|
||||
assert response.status_code == 302
|
||||
assert response.url == reverse("web:index")
|
||||
|
||||
def test_logout_already_logged_out(self):
|
||||
response = self.client.post(reverse("web:logout"))
|
||||
assert response.status_code == status.HTTP_302_FOUND
|
||||
assert response.status_code == 302
|
||||
assert response.url == reverse("web:index")
|
||||
|
||||
def test_login_then_get_logout(self):
|
||||
@@ -90,11 +89,11 @@ class TestLogin(APITestCase):
|
||||
},
|
||||
)
|
||||
|
||||
assert response.status_code == status.HTTP_302_FOUND
|
||||
assert response.status_code == 302
|
||||
assert response.url == reverse("web:index")
|
||||
|
||||
response = self.client.get(reverse("web:logout"))
|
||||
assert response.status_code == status.HTTP_302_FOUND
|
||||
assert response.status_code == 302
|
||||
assert response.url == reverse("web:index")
|
||||
|
||||
def test_login_then_get_my_account(self):
|
||||
@@ -106,8 +105,42 @@ class TestLogin(APITestCase):
|
||||
},
|
||||
)
|
||||
|
||||
assert response.status_code == status.HTTP_302_FOUND
|
||||
assert response.status_code == 302
|
||||
assert response.url == reverse("web:index")
|
||||
|
||||
response = self.client.get(reverse("web:my_account"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
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,
|
||||
},
|
||||
)
|
||||
|
||||
assert response.status_code == 302
|
||||
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")
|
||||
|
||||
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,
|
||||
},
|
||||
)
|
||||
|
||||
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")
|
||||
|
||||
Reference in New Issue
Block a user