import unittest import configparser import os def GetFilteredEnvironment(environment): filtered_environment = {} for i in environment: print(i) if '%' in environment[i]: continue else: filtered_environment[i] = environment[i] return filtered_environment class Test_EnvironmentProcessing(unittest.TestCase): def test_ParsingException(self): environment_dict = {'TestVar': "%TestValueNotExisting%"} config = configparser.ConfigParser(environment_dict) config['Test'] = {'TestKey':'Correct'} with self.assertRaises(configparser.InterpolationSyntaxError): config.items('Test') def test_ParsingWorkaround(self): environment_dict = {'TestVar': "%TestValueNotExisting%"} config = configparser.ConfigParser(GetFilteredEnvironment(environment_dict)) config['Test'] = {'TestKey':'Correct'} test_config = config.items('Test') #environment variables will lower case within config parser self.assertTrue(('testkey','Correct') in test_config) self.assertFalse('TestVar' in test_config) def test_CurrentEnvironment(self): environment_dict = os.environ config = configparser.ConfigParser(GetFilteredEnvironment(environment_dict)) config['Test'] = {'TestKey':'Correct'} test_config = config.items('Test') #environment variables will lower case within config parser self.assertTrue(('testkey','Correct') in test_config) self.assertFalse('TestVar' in test_config)