def setUp(self): self.env = environment.Environment() self.var_already_set = self.env.normalize_key('var_already_set') os.environ[self.var_already_set] = 'orig value' self.assertIn(self.var_already_set, os.environ) self.var_not_set = self.env.normalize_key('var_not_set') if self.var_not_set in os.environ: del os.environ[self.var_not_set] self.assertNotIn(self.var_not_set, os.environ) self.orig_env = os.environ.copy()
def setUp(self): self.env = environment.Environment() # Name of a variable that is already set when the test starts. self.var_already_set = self.env.normalize_key('var_already_set') os.environ[self.var_already_set] = 'orig value' self.assertIn(self.var_already_set, os.environ) # Name of a variable that is not set when the test starts. self.var_not_set = self.env.normalize_key('var_not_set') if self.var_not_set in os.environ: del os.environ[self.var_not_set] self.assertNotIn(self.var_not_set, os.environ) self.orig_env = os.environ.copy()
def setUp(self): self.env = environment.Environment(windows=self.windows, pathsep=self.pathsep, allcaps=self.allcaps) self.var_already_set = self.env.normalize_key('VAR_ALREADY_SET') os.environ[self.var_already_set] = self.pathsep.join( 'one two three'.split()) self.assertIn(self.var_already_set, os.environ) self.var_not_set = self.env.normalize_key('VAR_NOT_SET') if self.var_not_set in os.environ: del os.environ[self.var_not_set] self.assertNotIn(self.var_not_set, os.environ) self.orig_env = os.environ.copy()
def __init__(self, pw_root, cipd_cache_dir, shell_file, quiet, *args, **kwargs): super(EnvSetup, self).__init__(*args, **kwargs) self._env = environment.Environment() self._pw_root = pw_root self._setup_root = os.path.join(pw_root, 'pw_env_setup', 'py', 'pw_env_setup') self._cipd_cache_dir = cipd_cache_dir self._shell_file = shell_file self._is_windows = os.name == 'nt' self._quiet = quiet if os.path.isfile(shell_file): os.unlink(shell_file) if isinstance(self._pw_root, bytes) and bytes != str: self._pw_root = self._pw_root.decode() self._env.set('PW_ROOT', self._pw_root)
def test_lower_handling(self): # This is only for testing case-handling on Windows. It doesn't make # sense to run it on other systems. if os.name != 'nt': return lower_var = 'lower_var' upper_var = lower_var.upper() if upper_var in os.environ: del os.environ[upper_var] self.assertNotIn(lower_var, os.environ) env = environment.Environment() env.append(lower_var, 'foo') env.append(upper_var, 'bar') with env(export=False) as env_: self.assertNotIn(lower_var, env_) self.assertIn(upper_var, env_) self.assertEqual(env_[upper_var], 'foo;bar')
def setUp(self): self.env = environment.Environment()
def __init__(self, pw_root, cipd_cache_dir, shell_file, quiet, install_dir, use_pigweed_defaults, cipd_package_file, virtualenv_root, virtualenv_requirements, virtualenv_gn_target, virtualenv_gn_out_dir, cargo_package_file, enable_cargo, json_file, project_root, config_file): self._env = environment.Environment() self._project_root = project_root self._pw_root = pw_root self._setup_root = os.path.join(pw_root, 'pw_env_setup', 'py', 'pw_env_setup') self._cipd_cache_dir = cipd_cache_dir self._shell_file = shell_file self._is_windows = os.name == 'nt' self._quiet = quiet self._install_dir = install_dir self._virtualenv_root = (virtualenv_root or os.path.join(install_dir, 'pigweed-venv')) if os.path.isfile(shell_file): os.unlink(shell_file) if isinstance(self._pw_root, bytes) and bytes != str: self._pw_root = self._pw_root.decode() self._cipd_package_file = [] self._virtualenv_requirements = [] self._virtualenv_gn_targets = [] self._cargo_package_file = [] self._enable_cargo = enable_cargo if config_file: self._parse_config_file(config_file) self._json_file = json_file setup_root = os.path.join(pw_root, 'pw_env_setup', 'py', 'pw_env_setup') # TODO(pwbug/67, pwbug/68) Investigate pulling these files into an # oxidized env setup executable instead of referring to them in the # source tree. Note that this could be error-prone because users expect # changes to the files in the source tree to affect bootstrap. if use_pigweed_defaults: # If updating this section make sure to update # $PW_ROOT/pw_env_setup/docs.rst as well. self._cipd_package_file.append( os.path.join(setup_root, 'cipd_setup', 'pigweed.json')) self._cipd_package_file.append( os.path.join(setup_root, 'cipd_setup', 'luci.json')) # Only set if no other GN target is provided. if not virtualenv_gn_target: self._virtualenv_gn_targets.append( virtualenv_setup.GnTarget( '{}#pw_env_setup:python.install'.format(pw_root))) self._cargo_package_file.append( os.path.join(setup_root, 'cargo_setup', 'packages.txt')) self._cipd_package_file.extend(cipd_package_file) self._virtualenv_requirements.extend(virtualenv_requirements) self._virtualenv_gn_targets.extend(virtualenv_gn_target) self._virtualenv_gn_out_dir = virtualenv_gn_out_dir self._cargo_package_file.extend(cargo_package_file) self._env.set('PW_PROJECT_ROOT', project_root) self._env.set('PW_ROOT', pw_root) self._env.set('_PW_ACTUAL_ENVIRONMENT_ROOT', install_dir) self._env.add_replacement('_PW_ACTUAL_ENVIRONMENT_ROOT', install_dir) self._env.add_replacement('PW_ROOT', pw_root)