aboutsummaryrefslogtreecommitdiffstats
path: root/lang/python/tests
diff options
context:
space:
mode:
Diffstat (limited to 'lang/python/tests')
-rwxr-xr-xlang/python/tests/t-encrypt-large.py2
-rwxr-xr-xlang/python/tests/t-idiomatic.py31
-rwxr-xr-xlang/python/tests/t-verify.py8
3 files changed, 25 insertions, 16 deletions
diff --git a/lang/python/tests/t-encrypt-large.py b/lang/python/tests/t-encrypt-large.py
index 69aed483..29f9de21 100755
--- a/lang/python/tests/t-encrypt-large.py
+++ b/lang/python/tests/t-encrypt-large.py
@@ -37,7 +37,7 @@ def read_cb(amount):
ntoread -= chunk
assert ntoread >= 0
assert chunk >= 0
- return bytes(random.randrange(256) for i in range(chunk))
+ return bytes(bytearray(random.randrange(256) for i in range(chunk)))
nwritten = 0
def write_cb(data):
diff --git a/lang/python/tests/t-idiomatic.py b/lang/python/tests/t-idiomatic.py
index 1989c922..726bbb93 100755
--- a/lang/python/tests/t-idiomatic.py
+++ b/lang/python/tests/t-idiomatic.py
@@ -17,6 +17,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, see <http://www.gnu.org/licenses/>.
+import sys
import io
import os
import tempfile
@@ -60,17 +61,21 @@ with tempfile.TemporaryFile() as source, \
sign_and_verify(source, signed, sink)
-# XXX: Python's io.BytesIo.truncate does not work as advertised.
-# http://bugs.python.org/issue27261
-bio = io.BytesIO()
-bio.truncate(1)
-if len(bio.getvalue()) != 1:
- # This version of Python is affected, preallocate buffer.
- preallocate = 128*b'\x00'
-else:
- preallocate = b''
+if sys.version_info[0] == 3:
+ # Python2's io.BytesIO does not implement the buffer interface,
+ # hence we cannot use it as sink.
-# Demonstrate automatic wrapping of objects implementing the buffer
-# interface, and the use of data objects with the 'with' statement.
-with io.BytesIO(preallocate) as signed, pyme.Data() as sink:
- sign_and_verify(b"Hallo Leute\n", signed, sink)
+ # XXX: Python's io.BytesIo.truncate does not work as advertised.
+ # http://bugs.python.org/issue27261
+ bio = io.BytesIO()
+ bio.truncate(1)
+ if len(bio.getvalue()) != 1:
+ # This version of Python is affected, preallocate buffer.
+ preallocate = 128*b'\x00'
+ else:
+ preallocate = b''
+
+ # Demonstrate automatic wrapping of objects implementing the buffer
+ # interface, and the use of data objects with the 'with' statement.
+ with io.BytesIO(preallocate) as signed, pyme.Data() as sink:
+ sign_and_verify(b"Hallo Leute\n", signed, sink)
diff --git a/lang/python/tests/t-verify.py b/lang/python/tests/t-verify.py
index b88bd07c..ed5a91a2 100755
--- a/lang/python/tests/t-verify.py
+++ b/lang/python/tests/t-verify.py
@@ -17,6 +17,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, see <http://www.gnu.org/licenses/>.
+import sys
import os
import pyme
from pyme import core, constants, errors
@@ -67,8 +68,11 @@ def check_result(result, summary, validity, fpr, status, notation):
if notation:
expected_notations = {
- "bar": b"\xc3\xb6\xc3\xa4\xc3\xbc\xc3\x9f".decode() +
- " das waren Umlaute und jetzt ein prozent%-Zeichen",
+ "bar": (b"\xc3\xb6\xc3\xa4\xc3\xbc\xc3\x9f" +
+ b" das waren Umlaute und jetzt ein prozent%-Zeichen"
+ if sys.version_info[0] < 3 else
+ b"\xc3\xb6\xc3\xa4\xc3\xbc\xc3\x9f".decode() +
+ " das waren Umlaute und jetzt ein prozent%-Zeichen"),
"foobar.1": "this is a notation data with 2 lines",
None: "http://www.gu.org/policy/",
}