feat: registration tests
ci/woodpecker/push/woodpecker Pipeline was successful
Details
ci/woodpecker/push/woodpecker Pipeline was successful
Details
parent
cf7e12e33b
commit
82d14a85a1
|
@ -19,6 +19,8 @@ from django.urls import reverse
|
|||
from django.test import TestCase, Client, override_settings
|
||||
from django.contrib.auth import authenticate
|
||||
|
||||
from .models import AccountConfirmChallenge
|
||||
|
||||
|
||||
class LoginTest(TestCase):
|
||||
"""
|
||||
|
@ -56,7 +58,7 @@ class LoginTest(TestCase):
|
|||
}
|
||||
resp = c.post(reverse("accounts.login"), payload)
|
||||
self.assertEqual(resp.status_code, 302)
|
||||
self.assertEqual(resp.headers["location"], reverse("accounts.protected"))
|
||||
self.assertEqual(resp.headers["location"], reverse("accounts.home"))
|
||||
|
||||
# email login works
|
||||
paylaod = {
|
||||
|
@ -65,7 +67,7 @@ class LoginTest(TestCase):
|
|||
}
|
||||
resp = c.post(reverse("accounts.login"), payload)
|
||||
self.assertEqual(resp.status_code, 302)
|
||||
self.assertEqual(resp.headers["location"], reverse("accounts.protected"))
|
||||
self.assertEqual(resp.headers["location"], reverse("accounts.home"))
|
||||
|
||||
# authentication failure when wrong credentials are provided
|
||||
payload = {
|
||||
|
@ -76,3 +78,65 @@ class LoginTest(TestCase):
|
|||
resp = self.client.post(reverse("accounts.login"), paylaod)
|
||||
self.assertEqual(resp.status_code, 401)
|
||||
self.assertEqual(b"Login Failed" in resp.content, True)
|
||||
|
||||
|
||||
class RegistrationTest(TestCase):
|
||||
def test_register_template_works(self):
|
||||
"""
|
||||
Tests if register template renders
|
||||
"""
|
||||
resp = self.client.get(reverse("accounts.register"))
|
||||
self.assertEqual(b"Free Forge Ecosystem" in resp.content, True)
|
||||
|
||||
def test_register_works(self):
|
||||
"""
|
||||
Tests if register works
|
||||
"""
|
||||
c = Client()
|
||||
|
||||
# passwords don't match
|
||||
msg = {
|
||||
"username": "register_user",
|
||||
"password": "password",
|
||||
"email": "register_user@example.com",
|
||||
"confirm_password": "foo@example.com",
|
||||
}
|
||||
# resp = c.post(reverse("accounts.register"), msg)
|
||||
# self.assertEqual(resp.status_code, 400)
|
||||
|
||||
# register user
|
||||
msg["confirm_password"] = msg["password"]
|
||||
resp = c.post(reverse("accounts.register"), msg)
|
||||
self.assertEqual(resp.status_code, 302)
|
||||
|
||||
user = get_user_model().objects.get(username=msg["username"])
|
||||
self.assertEqual(user.is_active, False)
|
||||
challenge = AccountConfirmChallenge.objects.get(owned_by=user)
|
||||
|
||||
pending_url = challenge.pending_url()
|
||||
self.assertEqual(resp.headers["location"], pending_url)
|
||||
|
||||
resp = c.post(reverse("accounts.verify.resend", args=(challenge.public_ref,)))
|
||||
self.assertEqual(resp.status_code, 302)
|
||||
self.assertEqual(resp.headers["location"], pending_url)
|
||||
|
||||
resp = c.post(challenge.verification_link())
|
||||
self.assertEqual(resp.status_code, 302)
|
||||
self.assertEqual(resp.headers["location"], reverse("accounts.login"))
|
||||
user.refresh_from_db()
|
||||
self.assertEqual(user.is_active, True)
|
||||
|
||||
old_email = msg["email"]
|
||||
|
||||
# duplicate username
|
||||
msg["email"] = "new_register_user_email@example.com"
|
||||
resp = c.post(reverse("accounts.register"), msg)
|
||||
self.assertEqual(resp.status_code, 400)
|
||||
self.assertEqual(b"Username is already registered" in resp.content, True)
|
||||
|
||||
# duplicate email
|
||||
msg["username"] = "new_register_user_email"
|
||||
msg["email"] = old_email
|
||||
resp = c.post(reverse("accounts.register"), msg)
|
||||
self.assertEqual(resp.status_code, 400)
|
||||
self.assertEqual(b"Email is already registered" in resp.content, True)
|
||||
|
|
Loading…
Reference in New Issue