def test_get_env_vars(self): set_env_var(NON_ASCII_VAR, NON_ASCII_VAL) vars = get_env_vars() assert_true('PATH' in vars) assert_equal(vars[self._upper_on_windows(TEST_VAR)], TEST_VAL) assert_equal(vars[self._upper_on_windows(NON_ASCII_VAR)], NON_ASCII_VAL) for k, v in vars.items(): assert_true(isinstance(k, unicode) and isinstance(v, unicode))
def find(self, name): var_name, has_default, default_value = name[2:-1].partition('=') value = get_env_var(var_name) if value is not None: return value if has_default: return default_value variable_not_found(name, get_env_vars(), "Environment variable '%s' not found." % name)
def _construct_env(self, env, rest): for key in rest: if not key.startswith('env:'): raise RuntimeError("'%s' is not supported by this keyword." % key) if env is None: env = get_env_vars(upper=False) env[key[4:]] = rest[key] if env: env = dict((encode_to_system(key), encode_to_system(env[key])) for key in env) return env
def raise_not_found(name, candidates, msg=None, env_vars=False): """Raise DataError for missing variable name. Return recommendations for similar variable names if any are found. """ if msg is None: msg = "Variable '%s' not found." % name if env_vars: candidates = list(candidates) + ['%%{%s}' % ev for ev in get_env_vars()] normalizer = partial(normalize, ignore='$@%&*{}_', caseless=True, spaceless=True) finder = RecommendationFinder(normalizer) recommendations = finder.find_recommendations(name, candidates) msg = finder.format_recommendations(msg, recommendations) raise DataError(msg)
def _raise_not_found(name, candidates, msg=None, env_vars=False): """Raise DataError for missing variable name. Return recommendations for similar variable names if any are found. """ if msg is None: msg = "Variable '%s' not found." % name if env_vars: candidates += ['%%{%s}' % var for var in utils.get_env_vars()] normalizer = partial(utils.normalize, ignore='$@%&*{}_', caseless=True, spaceless=True) finder = utils.RecommendationFinder(normalizer) recommendations = finder.find_recommendations(name, candidates) msg = finder.format_recommendations(msg, recommendations) raise DataError(msg)
def _get_candidates(self): candidates = dict(get_java_properties()) candidates.update(get_env_vars()) return candidates