apps.dashboard.views & .tests.test_views now take advantage of DUPLICATE_ITEM_ERROR & ExistingListItemForm() from .forms

This commit is contained in:
Disco DeDisco
2026-01-23 22:30:42 -05:00
parent 004241d52d
commit f27b9ffb52
2 changed files with 8 additions and 6 deletions

View File

@@ -1,7 +1,10 @@
from django.test import TestCase from django.test import TestCase
from django.utils import html from django.utils import html
from unittest import skip from unittest import skip
from ..forms import EMPTY_ITEM_ERROR from ..forms import (
DUPLICATE_ITEM_ERROR,
EMPTY_ITEM_ERROR,
)
from ..models import Item, List from ..models import Item, List
import lxml.html import lxml.html
@@ -119,7 +122,6 @@ class DashViewTest(TestCase):
response = self.post_invalid_input() response = self.post_invalid_input()
self.assertContains(response, html.escape(EMPTY_ITEM_ERROR)) self.assertContains(response, html.escape(EMPTY_ITEM_ERROR))
@skip
def test_duplicate_item_validation_errors_end_up_on_lists_page(self): def test_duplicate_item_validation_errors_end_up_on_lists_page(self):
list1 = List.objects.create() list1 = List.objects.create()
Item.objects.create(list=list1, text="lorem ipsum") Item.objects.create(list=list1, text="lorem ipsum")
@@ -129,7 +131,7 @@ class DashViewTest(TestCase):
data={"text": "lorem ipsum"}, data={"text": "lorem ipsum"},
) )
expected_error = html.escape("You've already logged this to your list") expected_error = html.escape(DUPLICATE_ITEM_ERROR)
self.assertContains(response, expected_error) self.assertContains(response, expected_error)
self.assertTemplateUsed(response, "apps/dashboard/list.html") self.assertTemplateUsed(response, "apps/dashboard/list.html")
self.assertEqual(Item.objects.all().count(), 1) self.assertEqual(Item.objects.all().count(), 1)

View File

@@ -1,6 +1,6 @@
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.shortcuts import redirect, render from django.shortcuts import redirect, render
from .forms import ItemForm from .forms import ExistingListItemForm, ItemForm
from .models import Item, List from .models import Item, List
def home_page(request): def home_page(request):
@@ -17,10 +17,10 @@ def new_list(request):
def view_list(request, list_id): def view_list(request, list_id):
our_list = List.objects.get(id=list_id) our_list = List.objects.get(id=list_id)
form = ItemForm() form = ExistingListItemForm(for_list=our_list)
if request.method == "POST": if request.method == "POST":
form = ItemForm(data=request.POST) form = ExistingListItemForm(for_list=our_list, data=request.POST)
if form.is_valid(): if form.is_valid():
form.save(for_list=our_list) form.save(for_list=our_list)
return redirect(our_list) return redirect(our_list)