mirror of
https://github.com/saymrwulf/cryptography.git
synced 2026-05-14 20:37:55 +00:00
* clean mypy with tests dir * remove most no_type_check annotations * le sigh * remove unneeded comments
53 lines
1.3 KiB
Python
53 lines
1.3 KiB
Python
# 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.
|
|
|
|
import typing
|
|
|
|
import pytest
|
|
|
|
from cryptography import utils
|
|
|
|
|
|
class TestCachedProperty(object):
|
|
def test_simple(self):
|
|
class T(object):
|
|
@utils.cached_property
|
|
def t(self):
|
|
accesses.append(None)
|
|
return 14
|
|
|
|
accesses: typing.List[typing.Optional[T]] = []
|
|
|
|
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):
|
|
class T(object):
|
|
@utils.cached_property
|
|
def t(self):
|
|
accesses.append(None)
|
|
return 14
|
|
|
|
accesses: typing.List[typing.Optional[T]] = []
|
|
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
|