diff --git a/shared/utils/tests/check_env_test.py b/shared/utils/tests/check_env_test.py new file mode 100644 index 0000000..32ec322 --- /dev/null +++ b/shared/utils/tests/check_env_test.py @@ -0,0 +1,53 @@ +"""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()