Loading src/common/env.py +8 −29 Original line number Diff line number Diff line Loading @@ -9,9 +9,9 @@ def boolify(var): :param var: the variable to check to see if it can be converted to bool """ if var in [0, "0", "FALSE", "False", "false", False]: if var in [0, "0", "FALSE", "False", "false",'f','F', False]: return False if var in [1, "1", "TRUE", "True", "true", True]: if var in [1, "1", "TRUE", "True", "true",'t', 'T', True]: return True raise TypeError("unable to evaluate expected boolean") Loading @@ -31,32 +31,11 @@ def check_environment(env_var, default=None): return boolify(os.environ[env_var]) if isinstance(default, int): return int(os.environ[env_var]) return os.environ[env_var] # assume if in python environment, it is already a bool or int if env_var in globals(): os.environ[env_var] = str(globals()[env_var]) return globals()[env_var] if env_var in locals(): os.environ[env_var] = str(locals()[env_var]) return locals()[env_var] if isinstance(default, float): return float(os.environ[env_var]) if isinstance(default, str): return str(os.environ[env_var]) if default is not None: os.environ[env_var] = str(default) return default No newline at end of file def check_multi_environment(env_var_multi, multi_value, env_var, default=None): """Check if the mod environment variable exists, if so, return that. If not, check if the vanilla variable has been specified and return that value instead. :param env_var_multi: the modified environment variable to look for :param multi_value: the value of the modified environmental :param env_var: the vanilla environment variable to look for :param default: the vanilla environment variable default value """ # check for existence of new var, if it exists, set environment # return multi value if str(env_var_multi) in os.environ: return check_environment(env_var_multi, multi_value) # set environment for vanilla and return vanilla return check_environment(env_var, default) tests/test_common/test_env.py +10 −4 Original line number Diff line number Diff line Loading @@ -4,14 +4,14 @@ from common.env import boolify, check_environment def test_boolify_true(): true_val = [1, "1", "TRUE", "True", "true", True] true_val = [1, "1", "TRUE", "True", "true", 't', 'T', True] for val in true_val: assert boolify(val) is True, f"Expected true {val} but did not get it." def test_boolify_false(): false_val = [0, "0", "FALSE", "False", "false", False] false_val = [0, "0", "FALSE", "False", "false",'f','F', False] for val in false_val: assert boolify(val) is False, f"Expected False {val} but did not get it." Loading Loading @@ -45,9 +45,15 @@ def test_check_environment_type_conversion_to_bool(): check_environment("BOOL_VAR", default=False) is True ), "Failed to boolify and check_environment" # TODO - checks for conversion to int, etc def check_environment_type_conversion_to_int(): os.environ["INT_VAR"] = "0" assert ( check_environment("INT_VAR", default=1) == 0 ), "Failed to cast to int and check_environment" def teardown_function(function): for var in ["TEST_VAR", "BOOL_VAR"]: if var in os.environ: Loading Loading
src/common/env.py +8 −29 Original line number Diff line number Diff line Loading @@ -9,9 +9,9 @@ def boolify(var): :param var: the variable to check to see if it can be converted to bool """ if var in [0, "0", "FALSE", "False", "false", False]: if var in [0, "0", "FALSE", "False", "false",'f','F', False]: return False if var in [1, "1", "TRUE", "True", "true", True]: if var in [1, "1", "TRUE", "True", "true",'t', 'T', True]: return True raise TypeError("unable to evaluate expected boolean") Loading @@ -31,32 +31,11 @@ def check_environment(env_var, default=None): return boolify(os.environ[env_var]) if isinstance(default, int): return int(os.environ[env_var]) return os.environ[env_var] # assume if in python environment, it is already a bool or int if env_var in globals(): os.environ[env_var] = str(globals()[env_var]) return globals()[env_var] if env_var in locals(): os.environ[env_var] = str(locals()[env_var]) return locals()[env_var] if isinstance(default, float): return float(os.environ[env_var]) if isinstance(default, str): return str(os.environ[env_var]) if default is not None: os.environ[env_var] = str(default) return default No newline at end of file def check_multi_environment(env_var_multi, multi_value, env_var, default=None): """Check if the mod environment variable exists, if so, return that. If not, check if the vanilla variable has been specified and return that value instead. :param env_var_multi: the modified environment variable to look for :param multi_value: the value of the modified environmental :param env_var: the vanilla environment variable to look for :param default: the vanilla environment variable default value """ # check for existence of new var, if it exists, set environment # return multi value if str(env_var_multi) in os.environ: return check_environment(env_var_multi, multi_value) # set environment for vanilla and return vanilla return check_environment(env_var, default)
tests/test_common/test_env.py +10 −4 Original line number Diff line number Diff line Loading @@ -4,14 +4,14 @@ from common.env import boolify, check_environment def test_boolify_true(): true_val = [1, "1", "TRUE", "True", "true", True] true_val = [1, "1", "TRUE", "True", "true", 't', 'T', True] for val in true_val: assert boolify(val) is True, f"Expected true {val} but did not get it." def test_boolify_false(): false_val = [0, "0", "FALSE", "False", "false", False] false_val = [0, "0", "FALSE", "False", "false",'f','F', False] for val in false_val: assert boolify(val) is False, f"Expected False {val} but did not get it." Loading Loading @@ -45,9 +45,15 @@ def test_check_environment_type_conversion_to_bool(): check_environment("BOOL_VAR", default=False) is True ), "Failed to boolify and check_environment" # TODO - checks for conversion to int, etc def check_environment_type_conversion_to_int(): os.environ["INT_VAR"] = "0" assert ( check_environment("INT_VAR", default=1) == 0 ), "Failed to cast to int and check_environment" def teardown_function(function): for var in ["TEST_VAR", "BOOL_VAR"]: if var in os.environ: Loading