diff options
Diffstat (limited to 'tests/test_encoding.py')
-rw-r--r-- | tests/test_encoding.py | 81 |
1 files changed, 45 insertions, 36 deletions
diff --git a/tests/test_encoding.py b/tests/test_encoding.py index 706654f..bd0f09f 100644 --- a/tests/test_encoding.py +++ b/tests/test_encoding.py @@ -1,7 +1,8 @@ import pytest -import redis +import redis from redis.connection import Connection + from .conftest import _get_client @@ -19,62 +20,70 @@ class TestEncoding: ) def test_simple_encoding(self, r_no_decode): - unicode_string = chr(3456) + 'abcd' + chr(3421) - r_no_decode['unicode-string'] = unicode_string.encode('utf-8') - cached_val = r_no_decode['unicode-string'] + unicode_string = chr(3456) + "abcd" + chr(3421) + r_no_decode["unicode-string"] = unicode_string.encode("utf-8") + cached_val = r_no_decode["unicode-string"] assert isinstance(cached_val, bytes) - assert unicode_string == cached_val.decode('utf-8') + assert unicode_string == cached_val.decode("utf-8") def test_simple_encoding_and_decoding(self, r): - unicode_string = chr(3456) + 'abcd' + chr(3421) - r['unicode-string'] = unicode_string - cached_val = r['unicode-string'] + unicode_string = chr(3456) + "abcd" + chr(3421) + r["unicode-string"] = unicode_string + cached_val = r["unicode-string"] assert isinstance(cached_val, str) assert unicode_string == cached_val def test_memoryview_encoding(self, r_no_decode): - unicode_string = chr(3456) + 'abcd' + chr(3421) - unicode_string_view = memoryview(unicode_string.encode('utf-8')) - r_no_decode['unicode-string-memoryview'] = unicode_string_view - cached_val = r_no_decode['unicode-string-memoryview'] + unicode_string = chr(3456) + "abcd" + chr(3421) + unicode_string_view = memoryview(unicode_string.encode("utf-8")) + r_no_decode["unicode-string-memoryview"] = unicode_string_view + cached_val = r_no_decode["unicode-string-memoryview"] # The cached value won't be a memoryview because it's a copy from Redis assert isinstance(cached_val, bytes) - assert unicode_string == cached_val.decode('utf-8') + assert unicode_string == cached_val.decode("utf-8") def test_memoryview_encoding_and_decoding(self, r): - unicode_string = chr(3456) + 'abcd' + chr(3421) - unicode_string_view = memoryview(unicode_string.encode('utf-8')) - r['unicode-string-memoryview'] = unicode_string_view - cached_val = r['unicode-string-memoryview'] + unicode_string = chr(3456) + "abcd" + chr(3421) + unicode_string_view = memoryview(unicode_string.encode("utf-8")) + r["unicode-string-memoryview"] = unicode_string_view + cached_val = r["unicode-string-memoryview"] assert isinstance(cached_val, str) assert unicode_string == cached_val def test_list_encoding(self, r): - unicode_string = chr(3456) + 'abcd' + chr(3421) + unicode_string = chr(3456) + "abcd" + chr(3421) result = [unicode_string, unicode_string, unicode_string] - r.rpush('a', *result) - assert r.lrange('a', 0, -1) == result + r.rpush("a", *result) + assert r.lrange("a", 0, -1) == result class TestEncodingErrors: def test_ignore(self, request): - r = _get_client(redis.Redis, request=request, decode_responses=True, - encoding_errors='ignore') - r.set('a', b'foo\xff') - assert r.get('a') == 'foo' + r = _get_client( + redis.Redis, + request=request, + decode_responses=True, + encoding_errors="ignore", + ) + r.set("a", b"foo\xff") + assert r.get("a") == "foo" def test_replace(self, request): - r = _get_client(redis.Redis, request=request, decode_responses=True, - encoding_errors='replace') - r.set('a', b'foo\xff') - assert r.get('a') == 'foo\ufffd' + r = _get_client( + redis.Redis, + request=request, + decode_responses=True, + encoding_errors="replace", + ) + r.set("a", b"foo\xff") + assert r.get("a") == "foo\ufffd" class TestMemoryviewsAreNotPacked: def test_memoryviews_are_not_packed(self): c = Connection() - arg = memoryview(b'some_arg') - arg_list = ['SOME_COMMAND', arg] + arg = memoryview(b"some_arg") + arg_list = ["SOME_COMMAND", arg] cmd = c.pack_command(*arg_list) assert cmd[1] is arg cmds = c.pack_commands([arg_list, arg_list]) @@ -85,25 +94,25 @@ class TestMemoryviewsAreNotPacked: class TestCommandsAreNotEncoded: @pytest.fixture() def r(self, request): - return _get_client(redis.Redis, request=request, encoding='utf-16') + return _get_client(redis.Redis, request=request, encoding="utf-16") def test_basic_command(self, r): - r.set('hello', 'world') + r.set("hello", "world") class TestInvalidUserInput: def test_boolean_fails(self, r): with pytest.raises(redis.DataError): - r.set('a', True) + r.set("a", True) def test_none_fails(self, r): with pytest.raises(redis.DataError): - r.set('a', None) + r.set("a", None) def test_user_type_fails(self, r): class Foo: def __str__(self): - return 'Foo' + return "Foo" with pytest.raises(redis.DataError): - r.set('a', Foo()) + r.set("a", Foo()) |