summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorINADA Naoki <songofacandy@gmail.com>2015-01-25 02:24:53 +0900
committerINADA Naoki <songofacandy@gmail.com>2015-01-25 02:35:57 +0900
commit2985f4d8651982b07e2cfa7037e7a8c3530a127b (patch)
tree8069223d23b98bfac8af3563e3204e8306fec1b0
parent75ce78dd1512460712f2600ffd927bedeeb02fbc (diff)
downloadmsgpack-python-2985f4d8651982b07e2cfa7037e7a8c3530a127b.tar.gz
Fix error when use unicode_literal in Python 2
-rw-r--r--.travis.yml7
-rw-r--r--msgpack/_unpacker.pyx10
-rw-r--r--tox.ini29
3 files changed, 40 insertions, 6 deletions
diff --git a/.travis.yml b/.travis.yml
index b9d19c1..dad7e87 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,6 +7,13 @@ language: python
python:
- 2.7
+env:
+ - TOXENV=py26-c,py27-c
+ - TOXENV=py32-c,py33-c,py34-c
+ - TOXENV=py26-pure,py27-pure
+ - TOXENV=py32-pure,py33-pure,py34-pure
+ - TOXENV=pypy-pure,pypy3-pure
+
install:
- pip install wheel tox
- ls -la wheelhouse
diff --git a/msgpack/_unpacker.pyx b/msgpack/_unpacker.pyx
index a9770d4..f5e7d95 100644
--- a/msgpack/_unpacker.pyx
+++ b/msgpack/_unpacker.pyx
@@ -251,7 +251,7 @@ cdef class Unpacker(object):
def __init__(self, file_like=None, Py_ssize_t read_size=0, bint use_list=1,
object object_hook=None, object object_pairs_hook=None, object list_hook=None,
- str encoding=None, str unicode_errors='strict', int max_buffer_size=0,
+ encoding=None, unicode_errors='strict', int max_buffer_size=0,
object ext_hook=ExtType,
Py_ssize_t max_str_len=2147483647, # 2**32-1
Py_ssize_t max_bin_len=2147483647,
@@ -289,15 +289,19 @@ cdef class Unpacker(object):
if encoding is not None:
if isinstance(encoding, unicode):
self.encoding = encoding.encode('ascii')
- else:
+ elif isinstance(encoding, bytes):
self.encoding = encoding
+ else:
+ raise TypeError("encoding should be bytes or unicode")
cenc = PyBytes_AsString(self.encoding)
if unicode_errors is not None:
if isinstance(unicode_errors, unicode):
self.unicode_errors = unicode_errors.encode('ascii')
- else:
+ elif isinstance(unicode_errors, bytes):
self.unicode_errors = unicode_errors
+ else:
+ raise TypeError("unicode_errors should be bytes or unicode")
cerr = PyBytes_AsString(self.unicode_errors)
init_ctx(&self.ctx, object_hook, object_pairs_hook, list_hook,
diff --git a/tox.ini b/tox.ini
index 7971dc7..15feb51 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
[tox]
-envlist = {py26,py27,py32,py33,py34}-{c,pure},{pypy,pypy3}-pure
+envlist = {py26,py27,py32,py33,py34}-{c,pure},{pypy,pypy3}-pure,py27-x86,py34-x86
[variants:pure]
setenv=
@@ -11,6 +11,29 @@ deps=
changedir=test
commands=
- c: python -c 'from msgpack import _packer, _unpacker'
- c: py.test
+ c,x86: python -c 'from msgpack import _packer, _unpacker'
+ c,x86: py.test
pure: py.test
+
+[testenv:py27-x86]
+basepython=python2.7-x86
+deps=
+ pytest
+
+changedir=test
+commands=
+ python -c 'import sys; print(hex(sys.maxsize))'
+ python -c 'from msgpack import _packer, _unpacker'
+ py.test
+
+[testenv:py34-x86]
+basepython=python3.4-x86
+deps=
+ pytest
+
+changedir=test
+commands=
+ python -c 'import sys; print(hex(sys.maxsize))'
+ python -c 'from msgpack import _packer, _unpacker'
+ py.test
+