aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_warnings.py
diff options
context:
space:
mode:
authorCory Benfield <lukasaoz@gmail.com>2016-03-21 11:38:20 +0000
committerCory Benfield <lukasaoz@gmail.com>2016-03-21 11:38:20 +0000
commitbeee981420164fb6f2a8e153081b261c11fddd99 (patch)
tree983869e3b752a9b51ac40e993c9c1818f45ecc93 /tests/test_warnings.py
parent2d53db112cec047a7bf38896ddb32e71f60de2eb (diff)
downloadcryptography-beee981420164fb6f2a8e153081b261c11fddd99.tar.gz
cryptography-beee981420164fb6f2a8e153081b261c11fddd99.tar.bz2
cryptography-beee981420164fb6f2a8e153081b261c11fddd99.zip
Test deleting deprecated attributes.
Diffstat (limited to 'tests/test_warnings.py')
-rw-r--r--tests/test_warnings.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/test_warnings.py b/tests/test_warnings.py
index 9946baa7..d27e757f 100644
--- a/tests/test_warnings.py
+++ b/tests/test_warnings.py
@@ -8,6 +8,8 @@ import sys
import types
import warnings
+import pytest
+
from cryptography.utils import deprecated
@@ -45,3 +47,42 @@ class TestDeprecated(object):
assert msg2.message.args == ("more deprecated text",)
assert "Y" in dir(mod)
+
+ def test_deleting_deprecated_members(self, monkeypatch):
+ mod = types.ModuleType("TestDeprecated/test_deprecated")
+ monkeypatch.setitem(sys.modules, mod.__name__, mod)
+ mod.X = deprecated(
+ value=1,
+ module_name=mod.__name__,
+ message="deprecated message text",
+ warning_class=DeprecationWarning
+ )
+ mod.Y = deprecated(
+ value=2,
+ module_name=mod.__name__,
+ message="more deprecated text",
+ warning_class=PendingDeprecationWarning,
+ )
+ mod = sys.modules[mod.__name__]
+ mod.Z = 3
+
+ with warnings.catch_warnings(record=True) as log:
+ warnings.simplefilter("always", PendingDeprecationWarning)
+ warnings.simplefilter("always", DeprecationWarning)
+ del mod.X
+ del mod.Y
+ del mod.Z
+
+ [msg1, msg2] = log
+ assert msg1.category is DeprecationWarning
+ assert msg1.message.args == ("deprecated message text",)
+
+ assert msg2.category is PendingDeprecationWarning
+ assert msg2.message.args == ("more deprecated text",)
+
+ assert "X" not in dir(mod)
+ assert "Y" not in dir(mod)
+ assert "Z" not in dir(mod)
+
+ with pytest.raises(AttributeError):
+ del mod.X