31 lines
926 B
Python
31 lines
926 B
Python
|
|
"""Helper library to get environment variables for absltest helper binaries."""
|
||
|
|
|
||
|
|
import os
|
||
|
|
|
||
|
|
|
||
|
|
_INHERITED_ENV_KEYS = frozenset({
|
||
|
|
# This is needed to correctly use the Python interpreter determined by
|
||
|
|
# bazel.
|
||
|
|
'PATH',
|
||
|
|
# This is used by the random module on Windows to locate crypto
|
||
|
|
# libraries.
|
||
|
|
'SYSTEMROOT',
|
||
|
|
})
|
||
|
|
|
||
|
|
|
||
|
|
def inherited_env():
|
||
|
|
"""Returns the environment variables that should be inherited from parent.
|
||
|
|
|
||
|
|
Reason why using an explicit list of environment variables instead of
|
||
|
|
inheriting all from parent: the absltest module itself interprets a list of
|
||
|
|
environment variables set by bazel, e.g. XML_OUTPUT_FILE,
|
||
|
|
TESTBRIDGE_TEST_ONLY. While testing absltest's own behavior, we should
|
||
|
|
remove them when invoking the helper subprocess. Using an explicit list is
|
||
|
|
safer.
|
||
|
|
"""
|
||
|
|
env = {}
|
||
|
|
for key in _INHERITED_ENV_KEYS:
|
||
|
|
if key in os.environ:
|
||
|
|
env[key] = os.environ[key]
|
||
|
|
return env
|