Fix pytest commandline flags being parsed by Beeref

For example, running "pytest -l" will error out as Beeref would try to
parse "-l" as a log level flag. Now we no longer try to blindly parse
flags when including the Beeref commandline parser.
This commit is contained in:
Sebastian Parborg 2024-06-09 17:37:09 +02:00
parent caed5c3801
commit 60d79d4cc9
3 changed files with 8 additions and 2 deletions

View file

@ -35,6 +35,8 @@ Fixed
crashes (by DarkDefender)
* Fixed a crash when pressing the crop shortcut while dragging an image
(by DarkDefender)
* Fix commandline arguments meant for pytest being parsed by BeeRef
(by DarkDefender)
Changed

View file

@ -89,7 +89,9 @@ class CommandlineArgs:
if with_check:
self._args = parser.parse_args()
else:
self._args = parser.parse_known_args()[0]
# Do not parse any flags from sys.argv as we are
# being used as a module.
self._args = parser.parse_args([])
def __getattribute__(self, name):
if name == '_args':

View file

@ -20,8 +20,10 @@ def test_command_line_args_singleton():
def test_command_line_args_with_check_forces_new_parsing(parse_mock):
args1 = CommandlineArgs()
args2 = CommandlineArgs(with_check=True)
parse_mock.assert_called_once()
args3 = CommandlineArgs()
assert parse_mock.call_count == 2
assert args1 is not args2
assert args2 is args3
CommandlineArgs._instance = None