Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

added some account tests #179

Merged
merged 3 commits into from
Mar 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ jobs:
- stage: test
script:
- black --check .
- flake8 .
- coverage run manage.py test

- stage: deploy_develop
before_deploy:
Expand Down
3 changes: 0 additions & 3 deletions accounts/tests.py

This file was deleted.

Empty file added accounts/tests/__init__.py
Empty file.
76 changes: 76 additions & 0 deletions accounts/tests/test_views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
from django.test import TestCase
from django.urls import reverse
from django.contrib.auth.models import User


class AccountViewsTestCase(TestCase):
def test_home_view(self):
response = self.client.get(reverse("home"))
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "home.html")

def test_register_view_get(self):
response = self.client.get(reverse("register"))
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "accounts/register.html")

def test_register_view_post(self):
response = self.client.post(
reverse("register"),
{
"username": "testuser",
"password1": "testpassword123",
"password2": "testpassword123",
},
)
self.assertEqual(
response.status_code, 302
) # Redirect after successful registration
self.assertRedirects(response, reverse("home"))

def test_login_view_get(self):
response = self.client.get(reverse("login"))
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "accounts/#.html")

def test_login_view_post(self):
User.objects.create_user(username="testuser", password="testpassword123")
response = self.client.post(
reverse("login"), {"username": "testuser", "password": "testpassword123"}
)
self.assertEqual(response.status_code, 302) # Redirect after successful login
self.assertRedirects(response, reverse("home"))

def test_logout_view(self):
User.objects.create_user(username="testuser", password="testpassword123")
self.client.login(username="testuser", password="testpassword123")
response = self.client.get(reverse("logout"))
self.assertEqual(response.status_code, 302) # Redirect after logout
self.assertRedirects(response, reverse("login"))

def test_verify_view_get(self):
User.objects.create_user(username="testuser", password="testpassword123")
self.client.login(username="testuser", password="testpassword123")
response = self.client.get(reverse("verify"))
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "accounts/verify.html")

def test_verify_view_post_success(self):
user = User.objects.create_user(username="testuser", password="testpassword123")
user.profile.is_verified = False
user.profile.save()
self.client.login(username="testuser", password="testpassword123")
response = self.client.post(reverse("verify"), {"answer": "ParkEasy"})
self.assertEqual(response.status_code, 200)
user.refresh_from_db()
self.assertTrue(user.profile.is_verified)

def test_verify_view_post_failure(self):
user = User.objects.create_user(username="testuser", password="testpassword123")
user.profile.is_verified = False
user.profile.save()
self.client.login(username="testuser", password="testpassword123")
response = self.client.post(reverse("verify"), {"answer": "WrongAnswer"})
self.assertEqual(response.status_code, 200)
user.refresh_from_db()
self.assertFalse(user.profile.is_verified)