From 4bced74e2da493e7d3fcb45e3cfb80a5b466a2f6 Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Thu, 3 Jul 2025 13:54:10 -0400 Subject: [PATCH] Add tests for InMemorySecret --- src/tests/test_memory_protection.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/tests/test_memory_protection.py 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