aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_cryptography_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_cryptography_utils.py')
-rw-r--r--tests/test_cryptography_utils.py65
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/test_cryptography_utils.py b/tests/test_cryptography_utils.py
new file mode 100644
index 00000000..ddea7602
--- /dev/null
+++ b/tests/test_cryptography_utils.py
@@ -0,0 +1,65 @@
+# This file is dual licensed under the terms of the Apache License, Version
+# 2.0, and the BSD License. See the LICENSE file in the root of this repository
+# for complete details.
+
+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
+ with pytest.raises(TypeError):
+ utils.int_from_bytes(["list", "is", "not", "bytes"], "big")
+
+
+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
+
+
+def test_bit_length():
+ assert utils.bit_length(1) == 1
+ assert utils.bit_length(11) == 4