Chromium Code Reviews| Index: recipe_engine/step_runner.py |
| diff --git a/recipe_engine/step_runner.py b/recipe_engine/step_runner.py |
| index f0e02fa698e64b7c01c358a972018fd17456e5cf..421072e31e9884a3867486abd3e55116fb6b6e4e 100644 |
| --- a/recipe_engine/step_runner.py |
| +++ b/recipe_engine/step_runner.py |
| @@ -425,6 +425,9 @@ class fakeEnviron(object): |
| def __getitem__(self, key): |
| return '<%s>' % key |
| + def keys(self): |
| + return self.data.keys() |
| + |
| def __delitem__(self, key): |
| self.data[key] = None |
| @@ -695,6 +698,8 @@ def _merge_envs(original, override): |
| opposed to overwriting, variables like PATH). |
| """ |
| result = original.copy() |
| + subst = (original if isinstance(original, fakeEnviron) |
| + else collections.defaultdict(lambda: '', **original)) |
|
iannucci
2017/06/07 23:17:59
let's separate this into another cl, but also just
dnj
2017/06/07 23:48:46
Tried it, was ugly.
|
| if not override: |
| return result |
| for k, v in override.items(): |
| @@ -702,7 +707,7 @@ def _merge_envs(original, override): |
| if k in result: |
| del result[k] |
| else: |
| - result[str(k)] = str(v) % original |
| + result[str(k)] = str(v) % subst |
| return result |