From 287d37dc645be8d1c60ddc05beb2c7e978ce16cf Mon Sep 17 00:00:00 2001 From: Paul Brown Date: Tue, 1 Dec 2015 20:14:45 -0600 Subject: [PATCH] add unit test for issue #30 --- wtfpeewee/tests.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/wtfpeewee/tests.py b/wtfpeewee/tests.py index 9222479..e9780bf 100644 --- a/wtfpeewee/tests.py +++ b/wtfpeewee/tests.py @@ -5,6 +5,7 @@ from peewee import * from wtforms import fields as wtfields from wtforms.form import Form as WTForm +from wtforms.validators import Regexp from wtfpeewee.fields import * from wtfpeewee.orm import model_form from wtfpeewee._compat import PY2 @@ -111,6 +112,25 @@ def test_defaults(self): form = BlogFormDef(obj=self.blog_a) self.assertEqual(form.data, {'title': 'a'}) + def test_duplicate_validators(self): + ''' Test whether validators are duplicated when forms share field_args + ''' + shared_field_args = {'id': {'validators': [Regexp('test')]}} + + ValueIncludedForm = model_form(NonIntPKModel, + field_args=shared_field_args, + allow_pk=True) + ValueExcludedForm = model_form(NonIntPKModel, + field_args=shared_field_args, + allow_pk=True, + exclude=['value']) + + value_included_form = ValueIncludedForm() + self.assertEqual(len(value_included_form.id.validators), 2) + + value_excluded_form = ValueExcludedForm() + self.assertEqual(len(value_excluded_form.id.validators), 2) + def test_non_int_pk(self): form = NonIntPKForm() self.assertEqual(form.data, {'value': None, 'id': None})