diff --git a/selfprivacy_api/backup/local_secret.py b/selfprivacy_api/backup/local_secret.py index e04733c..76237f3 100644 --- a/selfprivacy_api/backup/local_secret.py +++ b/selfprivacy_api/backup/local_secret.py @@ -32,6 +32,10 @@ class LocalBackupSecret: new_secret = LocalBackupSecret._generate() LocalBackupSecret.set(new_secret) + @staticmethod + def _full_reset(): + redis.delete(REDIS_KEY) + @staticmethod def exists() -> bool: return redis.exists(REDIS_KEY) diff --git a/tests/test_graphql/test_localsecret.py b/tests/test_graphql/test_localsecret.py new file mode 100644 index 0000000..d4b637a --- /dev/null +++ b/tests/test_graphql/test_localsecret.py @@ -0,0 +1,38 @@ +from selfprivacy_api.backup.local_secret import LocalBackupSecret +from pytest import fixture + + +@fixture() +def localsecret(): + LocalBackupSecret._full_reset() + return LocalBackupSecret + + +def test_local_secret_firstget(localsecret): + assert not LocalBackupSecret.exists() + secret = LocalBackupSecret.get() + assert LocalBackupSecret.exists() + assert secret is not None + + # making sure it does not reset again + secret2 = LocalBackupSecret.get() + assert LocalBackupSecret.exists() + assert secret2 == secret + + +def test_local_secret_reset(localsecret): + secret1 = LocalBackupSecret.get() + + LocalBackupSecret.reset() + secret2 = LocalBackupSecret.get() + assert secret2 is not None + assert secret2 != secret1 + + +def test_local_secret_set(localsecret): + newsecret = "great and totally safe secret" + oldsecret = LocalBackupSecret.get() + assert oldsecret != newsecret + + LocalBackupSecret.set(newsecret) + assert LocalBackupSecret.get() == newsecret \ No newline at end of file