summaryrefslogtreecommitdiff
path: root/tests/test_transcode.py
diff options
context:
space:
mode:
authorSergey Schetinin <sergey@maluke.com>2011-09-20 14:58:29 +0300
committerSergey Schetinin <sergey@maluke.com>2011-09-20 14:58:29 +0300
commitf504c9d6cba3159eef34b4b5e934d4650853ff90 (patch)
treeccd5fd7923e978e14733c0a5b7c8c5e1cfa35e58 /tests/test_transcode.py
parent9d3a9052f366df2ab4d23cfde19f8005e593f275 (diff)
downloadwebob-f504c9d6cba3159eef34b4b5e934d4650853ff90.tar.gz
add webob.transcode
* new detect_charset func * _encode_multipart now assumes utf8 and can write to caller-supplied file object * some tests
Diffstat (limited to 'tests/test_transcode.py')
-rw-r--r--tests/test_transcode.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/test_transcode.py b/tests/test_transcode.py
new file mode 100644
index 0000000..a1708ee
--- /dev/null
+++ b/tests/test_transcode.py
@@ -0,0 +1,48 @@
+# coding: cp1251
+from webob.request import Request
+from webob.response import Response
+from webob.transcode import transcode_mw
+from nose.tools import eq_
+
+# def tapp(env, sr):
+# req = Request(env)
+# r = Response(str(req))
+# #r = Response(str(dict(req.POST)))
+# return r(env, sr)
+
+def test_transcode():
+ def tapp(env, sr):
+ req = Request(env)
+ v = req.POST[req.query_string]
+ if hasattr(v, 'filename'):
+ print `v.filename`
+ r = Response(u'%s\n%r' % (v.filename, v.value))
+ else:
+ r = Response(v)
+ return r(env, sr)
+ text = u'ку...'
+ def test(post):
+ req = Request.blank('/?a', POST=post,
+ content_type='multipart/form-data',
+ charset='windows-1251'
+ )
+ return req.get_response(transcode_mw(tapp))
+
+ r = test({'a': text.encode('cp1251')})
+ eq_(r.text, text)
+ r = test({'a': ('file', text.encode('cp1251'))})
+ eq_(r.text, u'file\n%r' % text.encode('cp1251'))
+# r = test({'a': (text, 'foo')})
+# eq_(r.text, u"%s\n'foo'" % text)
+
+
+ #req = Request.blank('/?a', POST={'a': ('file', text.encode('cp1251'))},
+
+
+ # req = Request({}, charset='utf8')
+ # req = Request({})
+ # print req.charset
+ # print req._charset_cache
+ # print req.environ.get('CONTENT_TYPE')
+ #print '\xd0\xba\xd1\x83...'.decode('utf8').encode('cp1251')
+ #print u'\u043a'.encode('cp1251')