summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Kumar <arunkakorp@gmail.com>2009-10-14 09:59:45 +0000
committerR. Tyler Ballance <tyler@monkeypox.org>2009-10-14 19:56:00 -0700
commit9ac5e4c6ed36c3b6b1bc8340fdb69d32db9d98c4 (patch)
tree8e2a7434ce749d88b36927d9d289023566ecd120
parentd3940a809019c44da2348eca12e087a9843f9b64 (diff)
downloadpython-cheetah-9ac5e4c6ed36c3b6b1bc8340fdb69d32db9d98c4.tar.gz
Use cStringIO instead of array in DummyTransaction
Signed-off-by: R. Tyler Ballance <tyler@monkeypox.org>
-rwxr-xr-x[-rw-r--r--]cheetah/DummyTransaction.py27
1 files changed, 19 insertions, 8 deletions
diff --git a/cheetah/DummyTransaction.py b/cheetah/DummyTransaction.py
index 26d2ea7..8b30abf 100644..100755
--- a/cheetah/DummyTransaction.py
+++ b/cheetah/DummyTransaction.py
@@ -10,6 +10,11 @@ specific DummyTransaction or DummyResponse behavior
import types
+try:
+ from cStringIO import StringIO
+except ImportError:
+ import StringIO
+
class DummyResponseFailure(Exception):
pass
@@ -20,24 +25,30 @@ class DummyResponse(object):
servlet
'''
def __init__(self):
- self._outputChunks = []
-
+ self._outputChunks = StringIO()
+
def flush(self):
pass
def write(self, value):
- self._outputChunks.append(value)
+ self._outputChunks.write(value)
def writeln(self, txt):
write(txt)
write('\n')
def getvalue(self, outputChunks=None):
- chunks = outputChunks or self._outputChunks
- try:
- return ''.join(chunks)
+ #chunks = outputChunks or self._outputChunks
+ try:
+ if outputChunks is not None:
+ return ''.join(outputChunks)
+ else:
+ return self._outputChunks.getvalue()
except UnicodeDecodeError, ex:
- nonunicode = [c for c in chunks if not isinstance(c, unicode)]
+ #not sure about the best way to check for non-unicode in StringIO
+ nonunicode = ''
+ if outputChunks:
+ nonunicode = [c for c in outputChunks if not isinstance(c, unicode)]
raise DummyResponseFailure('''Looks like you're trying to mix encoded strings with Unicode strings
(most likely utf-8 encoded ones)
@@ -82,7 +93,7 @@ class TransformerResponse(DummyResponse):
if isinstance(_filter, types.TypeType):
_filter = _filter()
return _filter.filter(output)
- return output
+ return output
class TransformerTransaction(object):