test_script

Source Code: test_script.py

from fileinput import filename
import os
import unittest

from envars_helper import EncryptionHelper


class TestEnvvarsEncryption(unittest.TestCase):

    def setUp(self):
        self.password = "mypassword.com"
        self.filename = ".env"
        self.filename_to_be_decrypted = ".env.envs"
        self.envvars_encryption = EncryptionHelper()

    def tearDown(self):
        #delete test salt file from file
        file_data = open(f"{self.filename}.salt", 'w')
        file_data.close()
        os.remove(file_data.name)

        #delete test encrypted file from file
        file_data = open(f"{self.filename}.envs", 'w')
        file_data.close()
        os.remove(file_data.name)
        
        
    
    def test_is_instance(self):
        """Test class instance. """

        self.assertTrue(isinstance(self.envvars_encryption, EncryptionHelper))

    def test_generate_key_method(self):
        """Test generate key is instance method. """
        self.assertTrue(self.envvars_encryption.generate_key)

    def test_encrypt_method(self):
        """Test encrypt is instance method. """

        self.assertTrue(self.envvars_encryption.encrypt)

    def test_decrypt_method(self):
        """Test decrypt is instance method. """

        self.assertTrue(self.envvars_encryption.decrypt)

    def test_generate_key(self):
        """Test generate key method. """

        gen_key = self.envvars_encryption.generate_key(self.password, self.filename, save_salt=True)
        
        self.assertEqual(type(gen_key), bytes)


    def test_encrypt(self):
        """Test encrypt method. """

        key = self.envvars_encryption.generate_key(self.password, self.filename, save_salt=True)
        encrypted = self.envvars_encryption.encrypt(self.filename, key)
        self.assertEqual(encrypted, "File encrypted successfully...")

    def test_decrypt_file_doesnot_exist(self):
        """Test decryp file does not exist """

        key = self.envvars_encryption.generate_key(self.password, self.filename, save_salt=True)
        self.envvars_encryption.encrypt(self.filename, key)
        self.envvars_encryption.decrypt("wrong.notenvs", key)
        self.assertRaises(SystemExit)
        
    def test_decrypt(self):
        """Test decrypt method. """

        key = self.envvars_encryption.generate_key(self.password, self.filename, save_salt=True)
        self.envvars_encryption.encrypt(self.filename, key)
        decrypted = self.envvars_encryption.decrypt(self.filename_to_be_decrypted, key)
        self.assertEqual(decrypted, "File decrypted successfully...")


if __name__ == '__main__':
    unittest.main()