[Checkins] SVN: z3c.reference/branches/flash/ fixed unicode problems
Juergen Kartnaller
juergen at kartnaller.at
Wed Sep 12 03:17:17 EDT 2007
Log message for revision 79582:
fixed unicode problems
Changed:
U z3c.reference/branches/flash/CHANGES.txt
U z3c.reference/branches/flash/src/z3c/reference/browser/README.txt
U z3c.reference/branches/flash/src/z3c/reference/browser/serialize.py
U z3c.reference/branches/flash/src/z3c/reference/browser/serialize.txt
U z3c.reference/branches/flash/src/z3c/reference/browser/widget.py
-=-
Modified: z3c.reference/branches/flash/CHANGES.txt
===================================================================
--- z3c.reference/branches/flash/CHANGES.txt 2007-09-12 06:12:52 UTC (rev 79581)
+++ z3c.reference/branches/flash/CHANGES.txt 2007-09-12 07:17:17 UTC (rev 79582)
@@ -5,6 +5,8 @@
Before first release
====================
+- fixed unicode problems
+
- added tests for back references
- added back reference support
- buildoutify
Modified: z3c.reference/branches/flash/src/z3c/reference/browser/README.txt
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/browser/README.txt 2007-09-12 06:12:52 UTC (rev 79581)
+++ z3c.reference/branches/flash/src/z3c/reference/browser/README.txt 2007-09-12 07:17:17 UTC (rev 79582)
@@ -160,10 +160,10 @@
Let us write some data to it.
>>> IZopeDublinCore(vr).title = u"The DC Title"
- >>> IZopeDublinCore(vr).description = u"The DC Description"
+ >>> IZopeDublinCore(vr).description = "The DC Description \xc3\xa4".decode('utf8')
>>> print widget()
<...
- value="form.title=The+DC+Title&form.view=&form.description=The+DC+Description"...
+ value="form.title=The+DC+Title&form.view=&form.description=The+DC+Description+%C3%A4"...
Now we can setup a test request and set the values for the widget:
Modified: z3c.reference/branches/flash/src/z3c/reference/browser/serialize.py
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/browser/serialize.py 2007-09-12 06:12:52 UTC (rev 79581)
+++ z3c.reference/branches/flash/src/z3c/reference/browser/serialize.py 2007-09-12 07:17:17 UTC (rev 79582)
@@ -1,18 +1,22 @@
import cElementTree
import urllib
+
from BeautifulSoup import BeautifulSoup
+
+
def serializeForm(html):
-
tags = BeautifulSoup(html)(['input', 'textarea'])
- html = ''.join([str(tag) for tag in tags])
+ html = ''.join([unicode(tag) for tag in tags])
html = '<div>%s</div>' % html
- elem = cElementTree.fromstring(html)
+ elem = cElementTree.fromstring(html.encode('utf-8'))
res = []
for e in elem.findall('input'):
name = e.get('name')
- value = e.get('value')
+ value = e.get('value').encode('utf-8')
t = e.get('type')
- if t not in ('hidden', 'text') or None in (name, value):
+ if ( t not in ('hidden', 'text')
+ or None in (name, value)
+ ):
continue
res.append((name, value))
for e in elem.findall('textarea'):
@@ -20,6 +24,6 @@
value = e.text or ''
if name is None:
continue
- res.append((name, value))
+ res.append((name, value.encode('utf-8')))
return urllib.urlencode(res)
Modified: z3c.reference/branches/flash/src/z3c/reference/browser/serialize.txt
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/browser/serialize.txt 2007-09-12 06:12:52 UTC (rev 79581)
+++ z3c.reference/branches/flash/src/z3c/reference/browser/serialize.txt 2007-09-12 07:17:17 UTC (rev 79582)
@@ -6,10 +6,14 @@
>>> from z3c.reference.browser.serialize import serializeForm
- >>> html = """<input type="text" value="one" name="m.one"/><br/>"""\
- ... """<input type="text" value="two" name="m.two"/>""" \
- ... """<textarea name="m.area">tarea</textarea>""" \
- ... """<input type="text" value="second" name="m.two"/>"""
+ >>> html = """<input type="text" value="one" name="m.one"/><br/>
+ ... <input type="text" value="two" name="m.two"/>
+ ... <textarea name="m.area">tarea</textarea>
+ ... <input type="text" value="second" name="m.two"/>"""
>>> print serializeForm(html)
m.one=one&m.two=two&m.two=second&m.area=tarea
+ >>> html = u"""<input type="text" value="\xe4" name="m.one"/><br/>"""
+ >>> print serializeForm(html)
+ m.one=%C3%A4
+
Modified: z3c.reference/branches/flash/src/z3c/reference/browser/widget.py
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/browser/widget.py 2007-09-12 06:12:52 UTC (rev 79581)
+++ z3c.reference/branches/flash/src/z3c/reference/browser/widget.py 2007-09-12 07:17:17 UTC (rev 79582)
@@ -243,10 +243,10 @@
formData = self.request.get(formDataName)
if not formData:
return ref
- data = cgi.parse_qs(formData)
+ data = cgi.parse_qs(str(formData))
for k, v in data.items():
if type(v) is type([]) and len(v)==1:
- data[k] = v[0]
+ data[k] = v[0].decode('utf8')
data['form.actions.apply'] = u''
r = TestRequest(form=data)
More information about the Checkins
mailing list