aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2017-07-08 21:50:01 -0400
committerPaul Kehrer <paul.l.kehrer@gmail.com>2017-07-08 20:50:01 -0500
commit0c9aed91697c5bc1eb16c2254406149e2395fdae (patch)
treeb0ea4d4d81357e0aab15d70f1823486aebfbb9a8 /tests
parentae487bb5c70516505653a7884b5be5de26c5d96e (diff)
downloadcryptography-0c9aed91697c5bc1eb16c2254406149e2395fdae.tar.gz
cryptography-0c9aed91697c5bc1eb16c2254406149e2395fdae.tar.bz2
cryptography-0c9aed91697c5bc1eb16c2254406149e2395fdae.zip
Fixed #3747 -- cache extensions on x.509 objects (#3769)
* Fixed #3747 -- cache extensions on x.509 objects * be kind to cpython, save a dict lookup * flake8 * changelog
Diffstat (limited to 'tests')
-rw-r--r--tests/test_cryptography_utils.py47
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