diff options
Diffstat (limited to 'tests/test_cryptography_utils.py')
| -rw-r--r-- | tests/test_cryptography_utils.py | 65 |
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 |
