@@ -2088,7 +2088,7 @@ class Settings(BaseSettings, cli_parse_args=True):
20882088 )
20892089
20902090
2091- def test_cli_mutually_exclusive_group (capsys ):
2091+ def test_cli_mutually_exclusive_group (capsys , monkeypatch ):
20922092 class Circle (CliMutuallyExclusiveGroup ):
20932093 radius : Optional [float ] = 21
20942094 diameter : Optional [float ] = 22
@@ -2120,24 +2120,25 @@ class Settings(BaseModel):
21202120 in capsys .readouterr ().err
21212121 )
21222122
2123- with pytest .raises (SystemExit ):
2124- CliApp .run (Settings , cli_args = ['--help' ])
2125- usage = (
2123+
2124+ with monkeypatch .context () as m :
2125+ m .setattr (sys , 'argv' , ['example.py' , '--help' ])
2126+ with pytest .raises (SystemExit ):
2127+ CliApp .run (Settings )
2128+ usage = (
21262129 """usage: example.py [-h] [--circle-optional.radius float |
21272130 --circle-optional.diameter float |
21282131 --circle-optional.perimeter float]
21292132 (--circle-required.radius float |
21302133 --circle-required.diameter float |
21312134 --circle-required.perimeter float)"""
2132- if sys .version_info >= (3 , 13 )
2133- else """usage: example.py [-h]
2135+ if sys .version_info >= (3 , 13 )
2136+ else """usage: example.py [-h]
21342137 [--circle-optional.radius float | --circle-optional.diameter float | --circle-optional.perimeter float]
2135- (--circle-required.radius float | --circle-required.diameter float | --circle-required.perimeter float)
2136- """
2137- )
2138- assert (
2139- capsys .readouterr ().out
2140- == f"""{ usage }
2138+ (--circle-required.radius float | --circle-required.diameter float | --circle-required.perimeter float)"""
2139+ )
2140+ assert (
2141+ capsys .readouterr ().out == f"""{ usage }
21412142
21422143{ ARGPARSE_OPTIONS_TEXT } :
21432144 -h, --help show this help message and exit
0 commit comments