forked from Hostea/dashboard
feat: registration tests
parent
cf7e12e33b
commit
82d14a85a1
|
@ -19,6 +19,8 @@ from django.urls import reverse
|
||||||
from django.test import TestCase, Client, override_settings
|
from django.test import TestCase, Client, override_settings
|
||||||
from django.contrib.auth import authenticate
|
from django.contrib.auth import authenticate
|
||||||
|
|
||||||
|
from .models import AccountConfirmChallenge
|
||||||
|
|
||||||
|
|
||||||
class LoginTest(TestCase):
|
class LoginTest(TestCase):
|
||||||
"""
|
"""
|
||||||
|
@ -56,7 +58,7 @@ class LoginTest(TestCase):
|
||||||
}
|
}
|
||||||
resp = c.post(reverse("accounts.login"), payload)
|
resp = c.post(reverse("accounts.login"), payload)
|
||||||
self.assertEqual(resp.status_code, 302)
|
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
|
# email login works
|
||||||
paylaod = {
|
paylaod = {
|
||||||
|
@ -65,7 +67,7 @@ class LoginTest(TestCase):
|
||||||
}
|
}
|
||||||
resp = c.post(reverse("accounts.login"), payload)
|
resp = c.post(reverse("accounts.login"), payload)
|
||||||
self.assertEqual(resp.status_code, 302)
|
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
|
# authentication failure when wrong credentials are provided
|
||||||
payload = {
|
payload = {
|
||||||
|
@ -76,3 +78,65 @@ class LoginTest(TestCase):
|
||||||
resp = self.client.post(reverse("accounts.login"), paylaod)
|
resp = self.client.post(reverse("accounts.login"), paylaod)
|
||||||
self.assertEqual(resp.status_code, 401)
|
self.assertEqual(resp.status_code, 401)
|
||||||
self.assertEqual(b"Login Failed" in resp.content, True)
|
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