Skip to content

Instantly share code, notes, and snippets.

@agusrichard
Created May 16, 2022 22:15
Show Gist options
  • Save agusrichard/943d999826b6fcd8007352cdff8d6031 to your computer and use it in GitHub Desktop.
Save agusrichard/943d999826b6fcd8007352cdff8d6031 to your computer and use it in GitHub Desktop.
from django.urls import reverse
from django.test import Client, TestCase
REQUIRED_FIELD_ERROR = "This field is required."
class TestUserView(TestCase):
def setUp(self):
self.client = Client()
self.register_url = reverse("todo:register")
self.login_url = reverse("todo:login")
self.logout_url = reverse("todo:logout")
self.home_url = reverse("todo:home")
self.register_template = "todo/register.html"
self.login_template = "todo/login.html"
def test_register_user_GET(self):
response = self.client.get(self.register_url)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, self.register_template)
def test_positive_register_user_POST(self):
response = self.client.post(
self.register_url,
data={"username": "testuser", "password": "testpassword"},
)
self.assertEqual(response.status_code, 302)
self.assertEqual(response.url, self.login_url)
self.assertTemplateNotUsed(response, self.register_template)
class TestTodoView(TestCase):
def setUp(self) -> None:
self.client = Client()
self.register_url = reverse("todo:register")
self.login_url = reverse("todo:login")
self.logout_url = reverse("todo:logout")
self.home_url = reverse("todo:home")
self.create_todo_url = reverse("todo:create_todo")
self.edit_todo_url = reverse("todo:edit_todo", args=["1"])
self.delete_todo_url = reverse("todo:delete_todo", args=["1"])
self.toggle_todo_url = reverse("todo:toggle_todo", args=["1"])
self.register_template = "todo/register.html"
self.login_template = "todo/login.html"
self.home_template = "todo/home.html"
self.create_todo_template = "todo/create_todo.html"
self.edit_todo_template = "todo/edit_todo.html"
def register(self):
self.client.post(
self.register_url,
data={"username": "testuser", "password": "testpassword"},
)
def login(self):
self.register()
self.client.post(
self.login_url,
data={"username": "testuser", "password": "testpassword"},
)
def test_negative_home_user_not_logged_in(self):
response = self.client.get(self.home_url)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, self.home_template)
self.assertFalse(response.context["user"].is_authenticated)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment