[pypy-commit] pypy merge-2.7.2: Fix multibytecodec incremental tests: ensure that .encode(final=True)
amauryfa
noreply at buildbot.pypy.org
Mon Jan 23 19:20:42 CET 2012
Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: merge-2.7.2
Changeset: r51694:9c27a0100918
Date: 2012-01-23 19:19 +0100
http://bitbucket.org/pypy/pypy/changeset/9c27a0100918/
Log: Fix multibytecodec incremental tests: ensure that
.encode(final=True) is always called at the end. Also have
MultibyteStreamWriter.reset() call .encode(final=True) to flush the
pending bytes.
diff --git a/pypy/module/_multibytecodec/app_multibytecodec.py b/pypy/module/_multibytecodec/app_multibytecodec.py
--- a/pypy/module/_multibytecodec/app_multibytecodec.py
+++ b/pypy/module/_multibytecodec/app_multibytecodec.py
@@ -40,7 +40,13 @@
return self
def write(self, data):
- self.stream.write(MultibyteIncrementalEncoder.encode(self, data))
+ self.stream.write(MultibyteIncrementalEncoder.encode(
+ self, data))
+
+ def reset(self):
+ self.stream.write(MultibyteIncrementalEncoder.encode(
+ self, '', final=True))
+ MultibyteIncrementalEncoder.reset(self)
def writelines(self, lines):
for data in lines:
diff --git a/pypy/module/_multibytecodec/test/test_app_incremental.py b/pypy/module/_multibytecodec/test/test_app_incremental.py
--- a/pypy/module/_multibytecodec/test/test_app_incremental.py
+++ b/pypy/module/_multibytecodec/test/test_app_incremental.py
@@ -104,11 +104,11 @@
r = e.encode("abcd")
assert r == 'abcd'
r = e.encode(u"\u5f95\u6c85")
- assert r == '~{abcd~}'
+ assert r == '~{abcd'
r = e.encode(u"\u5f50")
- assert r == '~{ef~}'
- r = e.encode(u"\u73b7")
- assert r == '~{gh~}'
+ assert r == 'ef'
+ r = e.encode(u"\u73b7", final=True)
+ assert r == 'gh~}'
def test_encode_hz_final(self):
e = self.IncrementalHzEncoder()
@@ -127,7 +127,9 @@
assert r == 'xyz~{abcd~}'
e.reset()
r = e.encode(u"xyz\u5f95\u6c85")
- assert r == 'xyz~{abcd~}'
+ assert r == 'xyz~{abcd'
+ r = e.encode(u'', final=True)
+ assert r == '~}'
def test_encode_hz_noreset(self):
text = (u'\u5df1\u6240\u4e0d\u6b32\uff0c\u52ff\u65bd\u65bc\u4eba\u3002'
diff --git a/pypy/module/_multibytecodec/test/test_app_stream.py b/pypy/module/_multibytecodec/test/test_app_stream.py
--- a/pypy/module/_multibytecodec/test/test_app_stream.py
+++ b/pypy/module/_multibytecodec/test/test_app_stream.py
@@ -76,8 +76,9 @@
w = self.HzStreamWriter(FakeFile())
for input in u'!\u5f95\u6c85xyz\u5f50\u73b7':
w.write(input)
- assert w.stream.output == ['!', '~{ab~}', '~{cd~}', 'x', 'y', 'z',
- '~{ef~}', '~{gh~}']
+ w.reset()
+ assert w.stream.output == ['!', '~{ab', 'cd', '~}x', 'y', 'z',
+ '~{ef', 'gh', '~}']
def test_no_flush(self):
class FakeFile:
More information about the pypy-commit
mailing list