aboutsummaryrefslogtreecommitdiff
path: root/tests/test_crypto.py
diff options
context:
space:
mode:
authorChristian Cleberg <hello@cleberg.net>2024-11-06 21:06:46 -0600
committerChristian Cleberg <hello@cleberg.net>2024-11-06 21:06:46 -0600
commit83126f2a2b88bd0e231e8f49d0ca0cbd02f4326f (patch)
tree0968285bd41c323cc1746c1807766c1af6cb8be5 /tests/test_crypto.py
parentd64de8f69024e9d855e92d9bef11401d3525967b (diff)
downloadyoshi-cli-83126f2a2b88bd0e231e8f49d0ca0cbd02f4326f.tar.gz
yoshi-cli-83126f2a2b88bd0e231e8f49d0ca0cbd02f4326f.tar.bz2
yoshi-cli-83126f2a2b88bd0e231e8f49d0ca0cbd02f4326f.zip
fix pylint errors
Diffstat (limited to 'tests/test_crypto.py')
-rw-r--r--tests/test_crypto.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/test_crypto.py b/tests/test_crypto.py
new file mode 100644
index 0000000..83fbe41
--- /dev/null
+++ b/tests/test_crypto.py
@@ -0,0 +1,50 @@
+# test_crypto.py
+import unittest
+from io import BytesIO
+from cryptography.fernet import Fernet
+from crypto import generate_key, load_key, encrypt, decrypt
+
+class TestCryptoFunctions(unittest.TestCase):
+
+ def setUp(self):
+ self.key = generate_key()
+ with open('vault.sqlite', 'wb') as vault:
+ vault.write(b'Hello, world!')
+
+ def tearDown(self):
+ try:
+ os.remove('vault.sqlite')
+ except FileNotFoundError:
+ pass
+
+ def test_generate_key(self):
+ new_key = generate_key()
+ self.assertNotEqual(new_key, self.key)
+
+ def test_load_key(self):
+ key_file = 'key.bin'
+ with open(key_file, 'wb') as key:
+ key.write(self.key)
+ loaded_key = load_key(key_file)
+ self.assertEqual(loaded_key, self.key)
+
+ def test_encrypt_decrypt(self):
+ encrypt(self.key, filename='vault.sqlite')
+ with open('vault.sqlite', 'rb') as vault:
+ encrypted_data = vault.read()
+ decrypt(self.key)
+ with open('vault.sqlite', 'rb') as vault:
+ decrypted_data = vault.read()
+ f = Fernet(self.key)
+ self.assertEqual(f.decrypt(encrypted_data), b'Hello, world!')
+
+ def test_load_invalid_key(self):
+ key_file = 'key.bin'
+ try:
+ load_key(key_file)
+ self.fail('Expected FileNotFoundError')
+ except FileNotFoundError:
+ pass
+
+if __name__ == '__main__':
+ unittest.main()