Skip to content

Commit 2358b70

Browse files
author
Mickaël Guérin
committed
Add tests on lists with duplicated key/id (fields.slug or items.value)
Failing tests to show that we should check unicity in the serializers (for better error output)
1 parent b324072 commit 2358b70

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

demo/tests/tests_integration.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,15 @@ def test_simple(self):
8686
field.accesses.filter(access_id=access, level=level).exists()
8787
)
8888

89+
def test_fields_slug(self):
90+
data = deepcopy(form_data)
91+
# duplicate field
92+
data['fields'] *= 2
93+
res = self.client.post(
94+
reverse('formidable:form_create'), data, format='json'
95+
)
96+
self.assertEquals(res.status_code, 400)
97+
8998
def test_with_items_in_fields(self):
9099
initial_count = Formidable.objects.count()
91100
res = self.client.post(
@@ -179,6 +188,17 @@ def test_create_field_on_update(self):
179188
self.assertEquals(form.pk, self.form.pk)
180189
self.assertEquals(form.fields.count(), 2)
181190

191+
def test_duplicate_items_update(self):
192+
# create a form with items
193+
data = deepcopy(form_data_items)
194+
res = self.client.put(self.edit_url, data, format='json')
195+
self.assertEquals(res.status_code, 200)
196+
# update items with duplicate entries
197+
data['fields'] *= 2
198+
res = self.client.put(self.edit_url, data, format='json')
199+
# expect validation error
200+
self.assertEquals(res.status_code, 400)
201+
182202
def test_delete_field_on_update(self):
183203
self.form.fields.create(
184204
type_id='text', slug='textslug', label='mytext',

0 commit comments

Comments
 (0)