summaryrefslogtreecommitdiff
path: root/cheetah/DummyTransaction.py
diff options
context:
space:
mode:
Diffstat (limited to 'cheetah/DummyTransaction.py')
-rw-r--r--[-rwxr-xr-x]cheetah/DummyTransaction.py25
1 files changed, 7 insertions, 18 deletions
diff --git a/cheetah/DummyTransaction.py b/cheetah/DummyTransaction.py
index e04a604..6726a63 100755..100644
--- a/cheetah/DummyTransaction.py
+++ b/cheetah/DummyTransaction.py
@@ -10,11 +10,6 @@ specific DummyTransaction or DummyResponse behavior
import types
-try:
- from cStringIO import StringIO
-except ImportError:
- import StringIO
-
class DummyResponseFailure(Exception):
pass
@@ -25,15 +20,15 @@ class DummyResponse(object):
servlet
'''
def __init__(self):
- self._outputChunks = StringIO()
-
+ self._outputChunks = []
+
def flush(self):
pass
def write(self, value):
if isinstance(value, unicode):
value = value.encode('utf-8')
- self._outputChunks.write(value)
+ self._outputChunks.append(value)
def writeln(self, txt):
@@ -41,17 +36,11 @@ class DummyResponse(object):
write('\n')
def getvalue(self, outputChunks=None):
- #chunks = outputChunks or self._outputChunks
- try:
- if outputChunks is not None:
- return ''.join(outputChunks)
- else:
- return self._outputChunks.getvalue().decode('utf-8')
+ chunks = outputChunks or self._outputChunks
+ try:
+ return ''.join(chunks).decode('utf-8')
except UnicodeDecodeError, ex:
- #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)]
+ nonunicode = [c for c in chunks 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)