28 lines
789 B
Python
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)
|