diff --git a/src/tests/test_memory_protection.py b/src/tests/test_memory_protection.py new file mode 100644 index 0000000..30fe278 --- /dev/null +++ b/src/tests/test_memory_protection.py @@ -0,0 +1,29 @@ +import sys +from pathlib import Path + +sys.path.append(str(Path(__file__).resolve().parents[1])) + +import pytest + +from utils.memory_protection import InMemorySecret + + +def test_inmemory_secret_round_trip_bytes_and_str(): + plaintext = b"super secret" + secret = InMemorySecret(plaintext) + assert secret.get_bytes() == plaintext + assert secret.get_str() == plaintext.decode("utf-8") + + +def test_inmemory_secret_invalid_type(): + with pytest.raises(TypeError): + InMemorySecret("not bytes") + + +def test_inmemory_secret_wipe_clears_attributes(): + secret = InMemorySecret(b"wipe me") + secret.wipe() + assert secret._key is None + assert secret._nonce is None + assert secret._cipher is None + assert secret._encrypted is None