summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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):