add tests for single-element cache
This commit is contained in:
parent
e920c101e5
commit
d6209fa03b
|
@ -1,3 +1,4 @@
|
|||
import mock
|
||||
from netlib import encoding, tutils
|
||||
|
||||
|
||||
|
@ -37,3 +38,32 @@ def test_deflate():
|
|||
)
|
||||
with tutils.raises(ValueError):
|
||||
encoding.decode(b"bogus", "deflate")
|
||||
|
||||
|
||||
def test_cache():
|
||||
decode_gzip = mock.MagicMock()
|
||||
decode_gzip.return_value = b"decoded"
|
||||
encode_gzip = mock.MagicMock()
|
||||
encode_gzip.return_value = b"encoded"
|
||||
|
||||
with mock.patch.dict(encoding.custom_decode, gzip=decode_gzip):
|
||||
with mock.patch.dict(encoding.custom_encode, gzip=encode_gzip):
|
||||
assert encoding.decode(b"encoded", "gzip") == b"decoded"
|
||||
assert decode_gzip.call_count == 1
|
||||
|
||||
# should be cached
|
||||
assert encoding.decode(b"encoded", "gzip") == b"decoded"
|
||||
assert decode_gzip.call_count == 1
|
||||
|
||||
# the other way around as well
|
||||
assert encoding.encode(b"decoded", "gzip") == b"encoded"
|
||||
assert encode_gzip.call_count == 0
|
||||
|
||||
# different encoding
|
||||
decode_gzip.return_value = b"bar"
|
||||
assert encoding.encode(b"decoded", "deflate") != b"decoded"
|
||||
assert encode_gzip.call_count == 0
|
||||
|
||||
# This is not in the cache anymore
|
||||
assert encoding.encode(b"decoded", "gzip") == b"encoded"
|
||||
assert encode_gzip.call_count == 1
|
||||
|
|
Loading…
Reference in New Issue