def test_parse_unrecognized_variable(self): parser = envparse.EnvironmentParser(prefix='PW_') parser.add_var('PW_FOO') parser.add_var('PW_BAR') with self.assertRaises(ValueError): parser.parse_env(env=self.raw_env)
def pigweed_environment_parser() -> envparse.EnvironmentParser: """Defines Pigweed's environment variables on an EnvironmentParser.""" parser = envparse.EnvironmentParser(prefix='PW_') parser.add_var('PW_BOOTSTRAP_PYTHON') parser.add_var('PW_CARGO_SETUP', type=envparse.strict_bool, default=False) parser.add_var('PW_ENABLE_PRESUBMIT_HOOK_WARNING', default=False) parser.add_var('PW_EMOJI', type=envparse.strict_bool, default=False) parser.add_var('PW_ENVSETUP') parser.add_var('PW_ENVSETUP_FULL') parser.add_var('PW_ENVSETUP_NO_BANNER', type=envparse.strict_bool, default=False) parser.add_var('PW_ENVSETUP_QUIET', type=envparse.strict_bool, default=False) parser.add_var('PW_ROOT') parser.add_var('PW_SKIP_BOOTSTRAP') parser.add_var('PW_SUBPROCESS', type=envparse.strict_bool, default=False) parser.add_var('PW_USE_COLOR', type=envparse.strict_bool, default=False) parser.add_var('PW_USE_GCS_ENVSETUP', type=envparse.strict_bool) parser.add_var('PW_PIGWEED_CIPD_INSTALL_DIR') parser.add_var('PW_LUCI_CIPD_INSTALL_DIR') parser.add_var('PW_CIPD_INSTALL_DIR') parser.add_var('PW_CIPD_PACKAGE_FILES') parser.add_var('PW_VIRTUALENV_REQUIREMENTS') parser.add_var('PW_VIRTUALENV_SETUP_PY_ROOTS') parser.add_var('PW_CARGO_PACKAGE_FILES') return parser
def test_parse_ignore_unrecognized(self): parser = envparse.EnvironmentParser(prefix='PW_', error_on_unrecognized=False) parser.add_var('PW_FOO') parser.add_var('PW_BAR') env = parser.parse_env(env=self.raw_env) self.assertEqual(env.PW_FOO, self.raw_env['PW_FOO']) self.assertEqual(env.PW_BAR, self.raw_env['PW_BAR'])
def pigweed_environment_parser() -> envparse.EnvironmentParser: """Defines Pigweed's environment variables on an EnvironmentParser.""" parser = envparse.EnvironmentParser(prefix='PW_') parser.add_var('PW_BOOTSTRAP_PYTHON') parser.add_var('PW_ENABLE_PRESUBMIT_HOOK_WARNING', default=False) parser.add_var('PW_EMOJI', type=envparse.strict_bool, default=False) parser.add_var('PW_ENVSETUP') parser.add_var('PW_ENVSETUP_FULL') parser.add_var('PW_ENVSETUP_NO_BANNER', type=envparse.strict_bool, default=False) parser.add_var('PW_ENVSETUP_QUIET', type=envparse.strict_bool, default=False) parser.add_var('PW_ENVIRONMENT_ROOT') parser.add_var('PW_PROJECT_ROOT') parser.add_var('PW_ROOT') parser.add_var('PW_SKIP_BOOTSTRAP') parser.add_var('PW_SUBPROCESS', type=envparse.strict_bool, default=False) parser.add_var('PW_USE_COLOR', type=envparse.strict_bool, default=False) parser.add_var('PW_USE_GCS_ENVSETUP', type=envparse.strict_bool) parser.add_allowed_suffix('_CIPD_INSTALL_DIR') parser.add_var('PW_ENVSETUP_DISABLE_SPINNER', type=envparse.strict_bool, default=False) parser.add_var('PW_DOCTOR_SKIP_CIPD_CHECKS') parser.add_var('PW_ACTIVATE_SKIP_CHECKS', type=envparse.strict_bool, default=False) # TODO(pwbug/274) Remove after some transition time. These are no longer # used but may be set by users or downstream projects, or just in currently # active shells. parser.add_var('PW_CIPD_PACKAGE_FILES') parser.add_var('PW_VIRTUALENV_REQUIREMENTS') parser.add_var('PW_VIRTUALENV_REQUIREMENTS_APPEND_DEFAULT') parser.add_var('PW_VIRTUALENV_SETUP_PY_ROOTS') parser.add_var('PW_CARGO_PACKAGE_FILES') parser.add_var('PW_CARGO_SETUP', type=envparse.strict_bool, default=False) parser.add_var('PW_VIRTUALENV_REQUIREMENTS_APPEND_DEFAULT') parser.add_var('PW_BANNER_FUNC') parser.add_var('PW_BRANDING_BANNER') parser.add_var('PW_BRANDING_BANNER_COLOR', default='magenta') return parser
def setUp(self): self.raw_env = { 'PATH': '/bin:/usr/bin:/usr/local/bin', 'FOO': '2020', 'ReVeRsE': 'pigweed', } self.parser = envparse.EnvironmentParser() self.parser.add_var('PATH') self.parser.add_var('FOO', type=int) self.parser.add_var('BAR', type=bool) self.parser.add_var('BAZ', type=float, default=math.pi) self.parser.add_var('ReVeRsE', type=lambda s: s[::-1]) self.parser.add_var('INT', type=int) self.parser.add_var('ERROR', type=error)
def test_add_var_without_prefix(self): parser = envparse.EnvironmentParser(prefix='PW_') with self.assertRaises(ValueError): parser.add_var('FOO')
def test_parse_allowed_suffix_but_not_suffix(self): parser = envparse.EnvironmentParser(prefix='PW_') parser.add_allowed_suffix('_ALLOWED_SUFFIX') with self.assertRaises(ValueError): parser.parse_env(env={'PW_FOO_ALLOWED_SUFFIX_FOO': '001'})
def test_parse_unrecognized_but_allowed_suffix(self): parser = envparse.EnvironmentParser(prefix='PW_') parser.add_allowed_suffix('_ALLOWED_SUFFIX') env = parser.parse_env(env={'PW_FOO_ALLOWED_SUFFIX': '001'}) self.assertEqual(env.PW_FOO_ALLOWED_SUFFIX, '001')