diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_cryptography_utils.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/test_cryptography_utils.py b/tests/test_cryptography_utils.py index 037d11cc..290e1612 100644 --- a/tests/test_cryptography_utils.py +++ b/tests/test_cryptography_utils.py @@ -4,8 +4,55 @@ from __future__ import absolute_import, division, print_function +import pytest + from cryptography import utils def test_int_from_bytes_bytearray(): assert utils.int_from_bytes(bytearray(b"\x02\x10"), "big") == 528 + + +class TestCachedProperty(object): + def test_simple(self): + accesses = [] + + class T(object): + @utils.cached_property + def t(self): + accesses.append(None) + return 14 + + assert T.t + t = T() + assert t.t == 14 + assert len(accesses) == 1 + assert t.t == 14 + assert len(accesses) == 1 + + t = T() + assert t.t == 14 + assert len(accesses) == 2 + assert t.t == 14 + assert len(accesses) == 2 + + def test_set(self): + accesses = [] + + class T(object): + @utils.cached_property + def t(self): + accesses.append(None) + return 14 + + t = T() + with pytest.raises(AttributeError): + t.t = None + assert len(accesses) == 0 + assert t.t == 14 + assert len(accesses) == 1 + with pytest.raises(AttributeError): + t.t = None + assert len(accesses) == 1 + assert t.t == 14 + assert len(accesses) == 1 |