Пример #1
0
    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)
Пример #2
0
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
Пример #3
0
    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'])
Пример #4
0
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
Пример #5
0
    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)
Пример #6
0
 def test_add_var_without_prefix(self):
     parser = envparse.EnvironmentParser(prefix='PW_')
     with self.assertRaises(ValueError):
         parser.add_var('FOO')
Пример #7
0
    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'})
Пример #8
0
    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')