[Lxml-checkins] r51427 - in lxml/trunk: . src/lxml/html src/lxml/html/tests

ianb at codespeak.net ianb at codespeak.net
Wed Feb 13 05:25:17 CET 2008


Author: ianb
Date: Wed Feb 13 05:25:16 2008
New Revision: 51427

Modified:
   lxml/trunk/CHANGES.txt
   lxml/trunk/src/lxml/html/__init__.py
   lxml/trunk/src/lxml/html/tests/test_forms.txt
Log:
Fix case when inputs have no name

Modified: lxml/trunk/CHANGES.txt
==============================================================================
--- lxml/trunk/CHANGES.txt	(original)
+++ lxml/trunk/CHANGES.txt	Wed Feb 13 05:25:16 2008
@@ -40,6 +40,10 @@
 Bugs fixed
 ----------
 
+* Form elements would return None for ``form.fields.keys()`` if there
+  was an unnamed input field.  Now unnamed input fields are completely
+  ignored.
+
 Other changes
 -------------
 

Modified: lxml/trunk/src/lxml/html/__init__.py
==============================================================================
--- lxml/trunk/src/lxml/html/__init__.py	(original)
+++ lxml/trunk/src/lxml/html/__init__.py	Wed Feb 13 05:25:16 2008
@@ -818,7 +818,8 @@
     def keys(self):
         names = sets.Set()
         for el in self:
-            names.add(el.name)
+            if el.name is not None:
+                names.add(el.name)
         return list(names)
 
     def __iter__(self):

Modified: lxml/trunk/src/lxml/html/tests/test_forms.txt
==============================================================================
--- lxml/trunk/src/lxml/html/tests/test_forms.txt	(original)
+++ lxml/trunk/src/lxml/html/tests/test_forms.txt	Wed Feb 13 05:25:16 2008
@@ -141,3 +141,24 @@
 single_checkbox2: 'good'
 check_group: <CheckboxValues {'1', '2', '3'} for checkboxes name='check_group'>
 
+>>> import lxml.html
+>>> tree = lxml.html.fromstring('''
+... <html><body>
+...  <form>
+...   <input name="foo" value="bar"/>
+...   <input type="submit" />
+...  </form>
+... </body></html>
+... ''')
+>>> tree # doctest: +ELLIPSIS
+<Element html at ...>
+>>> tree.forms[0] # doctest: +ELLIPSIS
+<Element form at ...>
+>>> tree.forms[0].fields # doctest: +NOPARSE_MARKUP
+<FieldsDict for form 0>
+>>> tree.forms[0].fields.keys()
+['foo']
+>>> tree.forms[0].fields.items()
+[('foo', 'bar')]
+>>> tree.forms[0].fields.values()
+['bar']


More information about the lxml-checkins mailing list