# HG changeset patch # User Paul Boddie # Date 1354838758 -3600 # Node ID 714fe9fe846dd9b56a972ccb162be5f40294153a # Parent 55e021cabb0bb8946f7f98511910d10d42eea12d Added a test for handler actions being used without a proper form. diff -r 55e021cabb0b -r 714fe9fe846d MoinForms.py --- a/MoinForms.py Wed Dec 05 00:58:20 2012 +0100 +++ b/MoinForms.py Fri Dec 07 01:05:58 2012 +0100 @@ -34,6 +34,8 @@ of the interpreted information. """ + _ = self.request.getText + # Get the form fields and obtain the hierarchical field structure. form = get_form(self.request) @@ -43,7 +45,20 @@ self.modifyFields(fields) - if self.validateFields(fields): + # Get the form definition. + + structure = self.getFormStructure() + + # Without any form definition, the page is probably the wrong one. + + if not structure: + self.request.theme.add_msg(_("This page does not provide a form."), "error") + do_show(self.pagename, self.request) + return + + # With a form definition, attempt to validate the fields. + + if self.validateFields(fields, structure): self.finished(fields, form) else: self.unfinished(fields, form) @@ -63,17 +78,22 @@ self.serialiseFields(fields, form) do_show(self.pagename, self.request) - def validateFields(self, fields): + def getFormStructure(self): - """ - Validate the given 'fields', introducing error fields where the - individual fields do not conform to their descriptions. - """ + "Return the structure of the form being handled." form = get_form(self.request) text = Page(self.request, self.pagename).get_raw_body() text = getFormForFragment(text, form.get("fragment", [None])[0]) - structure = getFormStructure(text, self.request) + return getFormStructure(text, self.request) + + def validateFields(self, fields, structure): + + """ + Validate the given 'fields' using the given form 'structure', + introducing error fields where the individual fields do not conform to + their descriptions. + """ return self.validateFieldsUsingStructure(fields, structure)