plugged up some testing holes with explicit placeholder urls in views and unit tests; most tests now pass
This commit is contained in:
@@ -8,19 +8,10 @@ class HomePageTest(TestCase):
|
||||
|
||||
def test_renders_input_form(self):
|
||||
response = self.client.get('/')
|
||||
self.assertContains(response, '<form method="POST">')
|
||||
self.assertContains(response, '<form method="POST"')
|
||||
self.assertContains(response, '<form method="POST" action="/">')
|
||||
self.assertContains(response, '<input name="item_text"')
|
||||
|
||||
def test_displays_all_list_items(self):
|
||||
# Given/Arrange
|
||||
Item.objects.create(text='itemey 1')
|
||||
Item.objects.create(text='itemey 2')
|
||||
# When/Act
|
||||
response = self.client.get('/')
|
||||
# Then/Assert
|
||||
self.assertContains(response, 'itemey 1')
|
||||
self.assertContains(response, 'itemey 2')
|
||||
|
||||
def test_can_save_a_POST_request(self):
|
||||
self. client.post('/', data={'item_text': "A new list item"})
|
||||
self.assertEqual(Item.objects.count(), 1)
|
||||
@@ -29,7 +20,7 @@ class HomePageTest(TestCase):
|
||||
|
||||
def test_redirects_after_POST(self):
|
||||
response = self.client.post('/', data={'item_text': 'A new list item'})
|
||||
self.assertRedirects(response, '/')
|
||||
self.assertRedirects(response, '/apps/dashboard/the-only-list-in-the-world/')
|
||||
|
||||
def test_only_saves_items_when_necessary(self):
|
||||
self.client.get('/')
|
||||
@@ -52,4 +43,21 @@ class ItemModelTest(TestCase):
|
||||
second_saved_item = saved_items[1]
|
||||
self.assertEqual(first_saved_item.text, "The first (ever) list item")
|
||||
self.assertEqual(second_saved_item.text, "A sequel somehow better than the first")
|
||||
|
||||
class ListViewTest(TestCase):
|
||||
def test_renders_input_form(self):
|
||||
response = self.client.get('/apps/dashboard/the-only-list-in-the-world/')
|
||||
self.assertContains(response, '<form method="POST"')
|
||||
self.assertContains(response, '<form method="POST" action="/">')
|
||||
self.assertContains(response, '<input name="item_text"')
|
||||
|
||||
def test_displays_all_list_items(self):
|
||||
# Given/Arrange
|
||||
Item.objects.create(text='itemey 1')
|
||||
Item.objects.create(text='itemey 2')
|
||||
# When/Act
|
||||
response = self.client.get('/apps/dashboard/the-only-list-in-the-world/')
|
||||
# Then/Assert
|
||||
self.assertContains(response, 'itemey 1')
|
||||
self.assertContains(response, 'itemey 2')
|
||||
|
||||
@@ -4,7 +4,11 @@ from .models import Item
|
||||
def home_page(request):
|
||||
if request.method == 'POST':
|
||||
Item.objects.create(text=request.POST['item_text'])
|
||||
return redirect('/')
|
||||
return redirect('/apps/dashboard/the-only-list-in-the-world/')
|
||||
|
||||
items = Item.objects.all()
|
||||
return render(request, 'apps/dashboard/home.html', {'items': items})
|
||||
|
||||
def view_list(request):
|
||||
items = Item.objects.all()
|
||||
return render(request, 'apps/dashboard/home.html', {'items': items})
|
||||
Reference in New Issue
Block a user