Skip to content

Commit

Permalink
Fixed unittests
Browse files Browse the repository at this point in the history
  • Loading branch information
qoda committed Jan 20, 2017
1 parent 1490288 commit 1cd68e2
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 27 deletions.
31 changes: 13 additions & 18 deletions formfactory/factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,13 @@ def __init__(self, *args, **kwargs):

# Interates over the fields defined in the Form model and sets the
# appropriate attributes and builds up the fieldgroups.
self.field_group = []
for field_group in defined_field_groups:
for field in field_group.fields.all():
fields = field_group.fields.all()
self.field_group.append(
[field_group.title, [f.slug for f in fields]]
)
for field in fields:
field_type = getattr(forms, field.field_type)

additional_validators = []
Expand Down Expand Up @@ -90,20 +95,11 @@ def _html_output(self, normal_row, error_row, row_ender, help_text_html,
top_errors = self.non_field_errors()

output, hidden_fields = [], []
Meta = getattr(self, "Meta", None)
raw_fieldsets = getattr(Meta, "fieldsets", None)
if raw_fieldsets is None:
fieldsets = (("", self.fields.keys()),)
else:
fieldsets = raw_fieldsets

for fieldset_label, fieldnames in fieldsets:

if raw_fieldsets:
s = """<div class="Fieldgroup">"""
if fieldset_label:
s += "<div Fieldgroup--header>%s</div>" % fieldset_label
output.append(s)
for fieldset_label, fieldnames in self.field_group:
snippet = """<div class="Fieldgroup">"""
if fieldset_label:
snippet += "<div Fieldgroup--header>%s</div>" % fieldset_label
output.append(snippet)

for name in fieldnames:
field = self.fields[name]
Expand Down Expand Up @@ -161,8 +157,7 @@ def _html_output(self, normal_row, error_row, row_ender, help_text_html,
"field_id": "id_%s" % name
})

if raw_fieldsets:
output.append("</div>")
output.append("</div>")

if top_errors:
output.insert(0, error_row % force_text(top_errors))
Expand All @@ -181,7 +176,7 @@ def _html_output(self, normal_row, error_row, row_ender, help_text_html,
# so insert a new, empty row.
last_row = (normal_row % {
"errors": "", "label": "",
"field": "", "help_text":"",
"field": "", "help_text": "",
"html_class_attr": html_class_attr,
"field_id": ""
})
Expand Down
3 changes: 0 additions & 3 deletions formfactory/tests/test_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,6 @@ def test_admin_form(self):
response = self.client.get("/admin/formfactory/form/add/")
self.assertEqual(response.status_code, 200)

# Ensure that the additional validators choice field is populated
self.assertContains(response, self.dummy_validator)

def test_admin_action(self):
response = self.client.get("/admin/formfactory/action/")
self.assertEqual(response.status_code, 200)
Expand Down
74 changes: 71 additions & 3 deletions formfactory/tests/test_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,12 @@ def load_fixtures(kls):
"field": getattr(kls, "formfield_%s" % count),
"order": count
})
setattr(kls, "fieldgroupthrough_%s" % count, models.FieldGroupThrough.objects.create(
**getattr(kls, "fieldgroupthrough_data_%s" % count)
))
setattr(
kls, "fieldgroupthrough_%s" % count,
models.FieldGroupThrough.objects.create(
**getattr(kls, "fieldgroupthrough_data_%s" % count)
)
)

kls.simpleform_data = {
"title": "Subscribe Form",
Expand All @@ -68,6 +71,22 @@ def load_fixtures(kls):
}
kls.simpleform = models.Form.objects.create(**kls.simpleform_data)

kls.simplefieldgroup_data = {
"title": "Field Group 1"
}
kls.simplefieldgroup = models.FormFieldGroup.objects.create(
**kls.simplefieldgroup_data
)

kls.simplefieldgroupformthrough_data = {
"form": kls.simpleform,
"field_group": kls.simplefieldgroup,
"order": 0
}
kls.simplefieldgroupformthrough = models.FieldGroupFormThrough.objects.create(
**kls.simplefieldgroupformthrough_data
)

kls.action_data = {
"action": "formfactory.actions.store_data"
}
Expand Down Expand Up @@ -163,12 +182,28 @@ def load_fixtures(kls):
"required": True
}
}

count = 0
for key, value in kls.simpleformfield_data.items():
setattr(
kls, "simpleformfield_%s" % key,
models.FormField.objects.create(**value)
)

setattr(kls, "simplefieldgroupthrough_data_%s" % key, {
"field_group": kls.simplefieldgroup,
"field": getattr(kls, "simpleformfield_%s" % key),
"order": count
})
setattr(
kls, "simplefieldgroupthrough_%s" % key,
models.FieldGroupThrough.objects.create(
**getattr(kls, "simplefieldgroupthrough_data_%s" % key)
)
)

count += 1

for salutation in ["Mr", "Mrs", "Dr", "Prof"]:
choice = models.FieldChoice.objects.create(
label=salutation, value=salutation
Expand All @@ -183,6 +218,22 @@ def load_fixtures(kls):
}
kls.loginform = models.Form.objects.create(**kls.loginform_data)

kls.loginfieldgroup_data = {
"title": "Field Group 1"
}
kls.loginfieldgroup = models.FormFieldGroup.objects.create(
**kls.loginfieldgroup_data
)

kls.loginfieldgroupformthrough_data = {
"form": kls.loginform,
"field_group": kls.loginfieldgroup,
"order": 0
}
kls.loginfieldgroupformthrough = models.FieldGroupFormThrough.objects.create(
**kls.loginfieldgroupformthrough_data
)

kls.loginaction_data = {
"action": "formfactory.actions.login"
}
Expand All @@ -199,6 +250,7 @@ def load_fixtures(kls):
"action": kls.loginaction
}
]

for param in kls.loginactionparam_data:
setattr(
kls, "loginactionparam_%s" % param["key"],
Expand Down Expand Up @@ -231,12 +283,28 @@ def load_fixtures(kls):
"required": True
}
}

count = 0
for key, value in kls.loginformfield_data.items():
setattr(
kls, "loginformfield_%s" % key,
models.FormField.objects.create(**value)
)

setattr(kls, "loginfieldgroupthrough_data_%s" % key, {
"field_group": kls.loginfieldgroup,
"field": getattr(kls, "loginformfield_%s" % key),
"order": count
})
setattr(
kls, "loginfieldgroupthrough_%s" % key,
models.FieldGroupThrough.objects.create(
**getattr(kls, "loginfieldgroupthrough_data_%s" % key)
)
)

count += 1

kls.formdata_data = {
"uuid": unicode(uuid.uuid4()),
"form": kls.form
Expand Down
6 changes: 3 additions & 3 deletions formfactory/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ def test_detail(self):
)
)
self.assertEqual(response.status_code, 200)
for field_group in self.form.fieldgroups.all():
for field_group in self.simpleform.fieldgroups.all():
for field in field_group.fields.all():
self.assertContains(response, field.label)
self.assertContains(response, field.slug)
for choice in field.choices.all():
self.assertContains(response, choice.label)
self.assertContains(response, choice.value)
Expand Down Expand Up @@ -99,7 +99,7 @@ def test_login_detail(self):
)
)
self.assertEqual(response.status_code, 200)
for field_group in self.form.fieldgroups.all():
for field_group in self.loginform.fieldgroups.all():
self.assertContains(response, field_group.title)
for field in field_group.fields.all():
self.assertContains(response, field.label)
Expand Down

0 comments on commit 1cd68e2

Please sign in to comment.