chromium/chrome/test/mini_installer/argument_parser.py

# Copyright 2021 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""argparse.ArgumentParser for the mini_installer test suite.

The provided parser is based on that created by typ.
"""

import typ


def ArgumentParser(host=None):
    """Returns an argparse.ArgumentParser for the mini_installer test suite.

    Args:
        host: A typ.Host to pass to typ's argument parser.

    Returns:
        A filled out ArgumentParser instance.
    """
    parser = typ.ArgumentParser(host)
    group = parser.add_argument_group(title='run_mini_installer_tests')
    group.add_argument('--force-clean',
                       action='store_true',
                       default=False,
                       help='Force cleaning existing installations')
    group.add_argument(
        '--output-dir',
        metavar='DIR',
        help='Directory into which crash dumps and other output '
        ' files are to be written')
    group.add_argument('--installer-path',
                       default='mini_installer.exe',
                       metavar='FILENAME',
                       help='The path of the installer.')
    group.add_argument('--previous-version-installer-path',
                       default='previous_version_mini_installer.exe',
                       metavar='FILENAME',
                       help='The path of the previous version installer.')
    group.add_argument('--chromedriver-path',
                       default='chromedriver.exe',
                       help='The path to chromedriver.')
    group.add_argument('--config',
                       default='config.config',
                       metavar='FILENAME',
                       help='Path to test configuration file')
    return parser