Author: chrisz
Date: 2010-05-11 14:32:50 -0600 (Tue, 11 May 2010)
New Revision: 4195

Modified:
   FormEncode/trunk/formencode/htmlfill_schemabuilder.py
   FormEncode/trunk/tests/test_htmlfill.py
Log:
htmlfill_schemabuilder.parse_schema() was broken.

Modified: FormEncode/trunk/formencode/htmlfill_schemabuilder.py
===================================================================
--- FormEncode/trunk/formencode/htmlfill_schemabuilder.py       2010-05-05 
18:49:41 UTC (rev 4194)
+++ FormEncode/trunk/formencode/htmlfill_schemabuilder.py       2010-05-11 
20:32:50 UTC (rev 4195)
@@ -7,7 +7,7 @@
 ``Schema`` object.
 """
 
-import validators, schema, compound
+import validators, schema, compound, htmlfill
 
 __all__ = ['parse_schema', 'SchemaBuilder']
 
@@ -16,10 +16,10 @@
     Given an HTML form, parse out the schema defined in it and return
     that schema.
     """
-    listener = htmlfill_schemabuilder.SchemaBuilder()
+    listener = SchemaBuilder()
     p = htmlfill.FillingParser(
         defaults={}, listener=listener)
-    p.feed(self.form)
+    p.feed(form)
     p.close()
     return listener.schema()
 
@@ -64,23 +64,23 @@
 
     def schema(self):
         return self._schema
-        
+
     def listen_input(self, parser, tag, attrs):
         get_attr = parser.get_attr
         name = get_attr(attrs, 'name')
         if not name:
             # @@: should warn if you try to validate unnamed fields
             return
-        v = compound.All(validators.Identity())
+        v = compound.All(validators.Identity())
         add_to_end = None
         # for checkboxes, we must set if_missing = False
-        if tag.lower() == "input":
+        if tag.lower() == "input":
             type_attr = get_attr(attrs, "type").lower().strip()
             if type_attr == "submit":
                 v.validators.append(validators.Bool())
             elif type_attr == "checkbox":
-                v.validators.append(validators.Wrapper(to_python = force_list))
-            elif type_attr == "file":
+                v.validators.append(validators.Wrapper(to_python = force_list))
+            elif type_attr == "file":
                 add_to_end = validators.FieldStorageUploadConverter()
         message = get_attr(attrs, 'form:message')
         required = to_bool(get_attr(attrs, 'form:required', 'false'))
@@ -89,8 +89,8 @@
                 validators.NotEmpty(
                 messages=get_messages(validators.NotEmpty, message)))
         else:
-            v.validators[0].if_missing = False
-        if add_to_end:
+            v.validators[0].if_missing = False
+        if add_to_end:
             v.validators.append(add_to_end)
         v_type = get_attr(attrs, 'form:validate', None)
         if v_type:

Modified: FormEncode/trunk/tests/test_htmlfill.py
===================================================================
--- FormEncode/trunk/tests/test_htmlfill.py     2010-05-05 18:49:41 UTC (rev 
4194)
+++ FormEncode/trunk/tests/test_htmlfill.py     2010-05-11 20:32:50 UTC (rev 
4195)
@@ -74,6 +74,7 @@
         print expected
         assert 0
     checker(p, listener.schema())
+    checker(p, htmlfill_schemabuilder.parse_schema(template))
 
 def test_no_trailing_newline():
     assert (htmlfill.render('<html><body></body></html>', {}, {})
@@ -88,10 +89,10 @@
     assert (htmlfill.render('<input type="submit" value="Japan - 
&#x65E5;&#x672C; Nihon" />',
                             {}, {}) ==
             u'<input type="submit" value="Japan - 日本 Nihon" />')
-    
+
 def test_xhtml():
     result = htmlfill.render('<form:error name="code"/>', errors={'code': 'an 
error'})
-    
+
 def test_trailing_error():
     assert (htmlfill.render('<input type="text" name="email">', 
errors={'email': 'error'},
                             prefix_error=False)
@@ -131,7 +132,7 @@
 
 def test_unicode():
     assert (htmlfill.render(u'<input type="checkbox" name="tags" value="2" />',
-                           dict(tags=[])) == 
+                           dict(tags=[])) ==
             '<input type="checkbox" name="tags" value="2" />')
 
 def test_not_force_defaults_text():
@@ -269,7 +270,7 @@
     rendered_html = htmlfill.render(html, defaults=dict(),
                                     force_defaults=False)
     assert html == rendered_html, rendered_html
-    
+
 def test_not_force_defaults_select_selected():
     html = """
 <select name="select-1" class="my_select">
@@ -284,7 +285,7 @@
     rendered_html = htmlfill.render(html, defaults={"select-1": "option-1"},
                                     force_defaults=False)
     assert html == rendered_html, rendered_html
-    
+
 def test_not_force_defaults_select_not_selected():
     html = """
 <select name="select-1" class="my_select">


------------------------------------------------------------------------------

_______________________________________________
FormEncode-CVS mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/formencode-cvs

Reply via email to