pmbootstrap/test/test_arguments.py

28 lines
789 B
Python

# SPDX-License-Identifier: GPL-3.0-or-later
import argparse
import pytest
from pmb.parse.arguments import toggle_other_boolean_flags
@pytest.fixture
def example_cli_with_flags():
parser = argparse.ArgumentParser(prog="sample cli")
parser.add_argument("-f1", "--flag1", action="store_true")
parser.add_argument("-f2", "--flag2", action="store_true")
return parser
def test_toggle_other_boolean_flags(example_cli_with_flags):
other_flags = ["flag1", "flag2"]
example_cli_with_flags.add_argument(
"-f12", "--flag12",
action=toggle_other_boolean_flags(*other_flags))
args = example_cli_with_flags.parse_args(['-f12'])
expected_flags_true = other_flags + ["flag12"]
for flag in expected_flags_true:
assert getattr(args, flag)