[wwwsearch-commits] r23228 - wwwsearch/ClientForm/trunk

jjlee at codespeak.net jjlee at codespeak.net
Sat Feb 11 15:09:47 CET 2006


Author: jjlee
Date: Sat Feb 11 15:09:44 2006
New Revision: 23228

Modified:
   wwwsearch/ClientForm/trunk/ClientForm.py
   wwwsearch/ClientForm/trunk/test.py
Log:
Fix handle_entityref to use same unescape code as for attributes

Modified: wwwsearch/ClientForm/trunk/ClientForm.py
==============================================================================
--- wwwsearch/ClientForm/trunk/ClientForm.py	(original)
+++ wwwsearch/ClientForm/trunk/ClientForm.py	Sat Feb 11 15:09:44 2006
@@ -661,13 +661,8 @@
         controls.append(("isindex", None, d))
 
     def handle_entityref(self, name):
-        table = self._entitydefs
-        fullname = "&%s;" % name
-        if table.has_key(fullname):
-            self.handle_data(table[fullname].encode(self._encoding))
-        else:
-            self.unknown_entityref(name)
-            return
+        self.handle_data(unescape(
+            '&%s;' % name, self._entitydefs, self._encoding))
 
     def handle_charref(self, name):
         self.handle_data(unescape_charref(name, self._encoding))

Modified: wwwsearch/ClientForm/trunk/test.py
==============================================================================
--- wwwsearch/ClientForm/trunk/test.py	(original)
+++ wwwsearch/ClientForm/trunk/test.py	Sat Feb 11 15:09:44 2006
@@ -140,6 +140,21 @@
         self.assertEqual(control.value, "val"+test_string)
         self.assertEqual(control.name, "name"+test_string)
 
+    def test_unescape_parsing_data(self):
+        file = StringIO(
+"""\
+<form>
+    <label for="foo">Blah &#x201d; &rdquo; blah</label>
+    <input type="text" id="foo" name="foo">
+</form>
+""")  #"
+        # don't crash if we can't encode -- rather, leave entity ref intact
+        forms = ClientForm.ParseFile(
+            file, "http://localhost/", backwards_compat=False,
+            encoding="latin-1")
+        label = forms[0].find_control(nr=0).get_labels()[0]
+        self.assertEqual(label.text, "Blah &#x201d; &rdquo; blah")
+
 
 class LWPFormTests(TestCase):
     """The original tests from libwww-perl 5.64."""


More information about the wwwsearch-commits mailing list