from django.urls import resolve from django.test import TestCase from django.http import HttpRequest from django.template.loader import render_to_string from lists.views import home_page class HomePageTest(TestCase): def test_root_url_resolves_to_home_page_view(self): found = resolve('/') self.assertEqual(found.func, home_page) def test_uses_home_template(self): response = self.client.get('/') # The Manual Way of doing it: html = response.content.decode('utf8') self.assertTrue(html.startswith('')) self.assertIn('To-Do lists', html) self.assertTrue(html.strip().endswith('')) # Using Django's Builtin Testing Client: self.assertTemplateUsed(response, 'home.html') def test_can_save_POST_request(self): response = self.client.post('/', data={'item_text': 'A new list item'}) self.assertIn('A new list item', response.content.decode()) self.assertTemplateUsed(response, 'home.html')