diff --git a/src/apps/dashboard/views.py b/src/apps/dashboard/views.py index af2d46d..cd4503d 100644 --- a/src/apps/dashboard/views.py +++ b/src/apps/dashboard/views.py @@ -17,18 +17,12 @@ def new_list(request): def view_list(request, list_id): our_list = List.objects.get(id=list_id) - error = None form = ItemForm() if request.method == "POST": form = ItemForm(data=request.POST) - try: - item = Item(text=request.POST['text'], list=our_list) - item.full_clean() - item.save() + if form.is_valid(): + Item.objects.create(text=request.POST["text"], list=our_list) return redirect(our_list) - except ValidationError: - error = "You can't have an empty list item" - - return render(request, 'apps/dashboard/list.html', {'list': our_list, "form": form, "error": error}) + return render(request, 'apps/dashboard/list.html', {'list': our_list, "form": form}) diff --git a/src/functional_tests/base.py b/src/functional_tests/base.py index 1dc54e3..d220a94 100644 --- a/src/functional_tests/base.py +++ b/src/functional_tests/base.py @@ -42,4 +42,4 @@ class FunctionalTest(StaticLiveServerTestCase): time.sleep(0.5) def get_item_input_box(self): - return self.browser.find_element(By.ID, "id-text") + return self.browser.find_element(By.ID, "id_text") diff --git a/src/functional_tests/test_list_item_validation.py b/src/functional_tests/test_list_item_validation.py index 101a323..3c55934 100644 --- a/src/functional_tests/test_list_item_validation.py +++ b/src/functional_tests/test_list_item_validation.py @@ -9,26 +9,30 @@ class ItemValidationTest(FunctionalTest): self.get_item_input_box().send_keys(Keys.ENTER) self.wait_for( - lambda: self.assertEqual( - self.browser.find_element(By.CSS_SELECTOR, ".invalid-feedback").text, - "You can't have an empty list item", - ) + lambda: self.browser.find_element(By.CSS_SELECTOR, "#id_text:invalid") ) self.get_item_input_box().send_keys("Purchase milk") - self.get_item_input_box().send_keys(Keys.ENTER) + self.wait_for( + lambda: self.browser.find_element(By.CSS_SELECTOR, "#id_text:valid") + ) + self.get_item_input_box().send_keys(Keys.ENTER) self.wait_for_row_in_list_table("1. Purchase milk") self.get_item_input_box().send_keys(Keys.ENTER) + self.wait_for_row_in_list_table("1. Purchase milk") self.wait_for( - lambda: self.assertEqual( - self.browser.find_element(By.CSS_SELECTOR, ".invalid-feedback").text, - "You can't have an empty list item", - ) + lambda: self.browser.find_element(By.CSS_SELECTOR, "#id_text:invalid") ) self.get_item_input_box().send_keys("Make tea") + self.wait_for( + lambda: self.browser.find_element( + By.CSS_SELECTOR, + "#id_text:valid", + ) + ) self.get_item_input_box().send_keys(Keys.ENTER) self.wait_for_row_in_list_table("2. Make tea")