mirror of
https://github.com/rbreu/beeref.git
synced 2026-03-11 08:54:28 +00:00
Merge 3ba69d1605 into caed5c3801
This commit is contained in:
commit
ba0e20ce6d
3 changed files with 15 additions and 8 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -80,16 +80,17 @@ class CommandlineArgs:
|
|||
_instance = None
|
||||
|
||||
def __new__(cls, *args, **kwargs):
|
||||
if not cls._instance or kwargs.get('with_check'):
|
||||
if not cls._instance:
|
||||
cls._instance = super().__new__(cls)
|
||||
return cls._instance
|
||||
|
||||
def __init__(self, with_check=False):
|
||||
if not hasattr(self, '_args'):
|
||||
if with_check:
|
||||
self._args = parser.parse_args()
|
||||
else:
|
||||
self._args = parser.parse_known_args()[0]
|
||||
if with_check:
|
||||
self._args = parser.parse_args()
|
||||
elif not hasattr(self, '_args'):
|
||||
# Do not parse any flags from sys.argv unless speficially
|
||||
# told to do so.
|
||||
self._args = parser.parse_args([])
|
||||
|
||||
def __getattribute__(self, name):
|
||||
if name == '_args':
|
||||
|
|
|
|||
|
|
@ -19,9 +19,13 @@ def test_command_line_args_singleton():
|
|||
@patch('beeref.config.settings.parser.parse_args')
|
||||
def test_command_line_args_with_check_forces_new_parsing(parse_mock):
|
||||
args1 = CommandlineArgs()
|
||||
parse_mock.assert_called_with([])
|
||||
args2 = CommandlineArgs(with_check=True)
|
||||
parse_mock.assert_called_once()
|
||||
assert args1 is not args2
|
||||
parse_mock.assert_called_with()
|
||||
args3 = CommandlineArgs()
|
||||
assert parse_mock.call_count == 2
|
||||
assert args1 is args2
|
||||
assert args2 is args3
|
||||
CommandlineArgs._instance = None
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue