"""Definition of tests for check_env function.""" import os import unittest from shared.utils import check_env class TestFunctionCheckEnv(unittest.TestCase): """Testing function check_env.""" def setUp(self): """Prepare for tests.""" # define variables for test self.not_set_env_var = 'NOT_SET_ENV_VAR' self.set_env_var_map = { 'ENV_VAR_UPPER': 'ENV_VAR_UPPER', 'ENV_VAR_LOWER': 'env_var_lower', } # set env vars for key, val in self.set_env_var_map.items(): os.environ[key] = val def tearDown(self): """Clean up after tests.""" # remove env vars for key in self.set_env_var_map: _ = os.environ.pop(key, default=None) def test_input_type(self): """Test that function fails on wrong input types.""" with self.assertRaises(AssertionError): check_env('not_a_list') with self.assertRaises(AssertionError): check_env({1, 2, 3}) def test_env_var_not_set(self): """Test that function raises AssertionError when checking environment variable that is not set.""" var_list = {self.not_set_env_var} msg = f'environment variable not set: {self.not_set_env_var}' with self.assertRaises(AssertionError, msg=msg): check_env(var_list) def test_env_vars_set(self): """Test that function does not raise any errors when environment variables are set.""" var_list = set(self.set_env_var_map.keys()) check_env(var_list) if __name__ == '__main__': unittest.main()