From 8a9f7c8af8312ad1de5fafd4a122c75d55e66c1e Mon Sep 17 00:00:00 2001 From: Disco DeDisco Date: Fri, 23 Jan 2026 21:50:49 -0500 Subject: [PATCH] changed #id-list-table everywhere to #id_list_table; duplicate item validation in apps.dashboard.tests.test_models, where ListAndItemModelsTest has been broken out into two different test models --- .../0004_alter_item_unique_together.py | 17 +++++++ src/apps/dashboard/tests/test_models.py | 47 +++++++------------ 2 files changed, 33 insertions(+), 31 deletions(-) create mode 100644 src/apps/dashboard/migrations/0004_alter_item_unique_together.py diff --git a/src/apps/dashboard/migrations/0004_alter_item_unique_together.py b/src/apps/dashboard/migrations/0004_alter_item_unique_together.py new file mode 100644 index 0000000..fb4619f --- /dev/null +++ b/src/apps/dashboard/migrations/0004_alter_item_unique_together.py @@ -0,0 +1,17 @@ +# Generated by Django 6.0 on 2026-01-24 02:45 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('dashboard', '0003_list_item_list'), + ] + + operations = [ + migrations.AlterUniqueTogether( + name='item', + unique_together={('list', 'text')}, + ), + ] diff --git a/src/apps/dashboard/tests/test_models.py b/src/apps/dashboard/tests/test_models.py index 0a7e43b..6dcf7c1 100644 --- a/src/apps/dashboard/tests/test_models.py +++ b/src/apps/dashboard/tests/test_models.py @@ -3,33 +3,17 @@ from django.db.utils import IntegrityError from django.test import TestCase from ..models import Item, List -class ListAndItemModelsTest(TestCase): - def test_saving_and_retrieving_items(self): - mylist = List() - mylist.save() - - first_item = Item() - first_item.text = "The first (ever) list item" - first_item.list = mylist - first_item.save() - - second_item = Item() - second_item.text = "A sequel somehow better than the first" - second_item.list = mylist - second_item.save() - - saved_list = List.objects.get() - self.assertEqual(saved_list, mylist) - - saved_items = Item.objects.all() - self.assertEqual(saved_items.count(), 2) - - first_saved_item = saved_items[0] - second_saved_item = saved_items[1] - self.assertEqual(first_saved_item.text, "The first (ever) list item") - self.assertEqual(first_saved_item.list, mylist) - self.assertEqual(second_saved_item.text, "A sequel somehow better than the first") - self.assertEqual(second_saved_item.list, mylist) +class ItemModelsTest(TestCase): + def test_default_text(self): + item = Item() + self.assertEqual(item.text, "") + + def test_item_is_related_to_list(self): + mylist = List.objects.create() + item = Item() + item.list = mylist + item.save() + self.assertIn(item, mylist.item_set.all()) def test_cannot_save_null_list_items(self): mylist = List.objects.create() @@ -43,10 +27,6 @@ class ListAndItemModelsTest(TestCase): with self.assertRaises(ValidationError): item.full_clean() - def test_get_absolute_url(self): - mylist = List.objects.create() - self.assertEqual(mylist.get_absolute_url(), f"/apps/dashboard/{mylist.id}/") - def test_duplicate_items_are_invalid(self): mylist = List.objects.create() Item.objects.create(list=mylist, text="jklol") @@ -60,3 +40,8 @@ class ListAndItemModelsTest(TestCase): Item.objects.create(list=list1, text="nojk") item = Item(list=list2, text="nojk") item.full_clean() # should not raise + +class ListModelTest(TestCase): + def test_get_absolute_url(self): + mylist = List.objects.create() + self.assertEqual(mylist.get_absolute_url(), f"/apps/dashboard/{mylist.id}/")