mirror of
https://github.com/nvbn/thefuck.git
synced 2025-02-20 20:09:07 +00:00
Fix the @wrap_settings annotation
It seems much more useful if it only adds settings that are not already set.
This commit is contained in:
parent
4a2f869c6d
commit
88831c424f
@ -11,6 +11,7 @@ def test_rules_names_list():
|
||||
|
||||
def test_update_settings():
|
||||
settings = Settings({'key': 'val'})
|
||||
new_settings = settings.update(key='new-val')
|
||||
assert new_settings.key == 'new-val'
|
||||
new_settings = settings.update(key='new-val', unset='unset-value')
|
||||
assert new_settings.key == 'val'
|
||||
assert new_settings.unset == 'unset-value'
|
||||
assert settings.key == 'val'
|
||||
|
@ -9,7 +9,8 @@ from tests.utils import Command
|
||||
|
||||
@pytest.mark.parametrize('override, old, new', [
|
||||
({'key': 'val'}, {}, {'key': 'val'}),
|
||||
({'key': 'new-val'}, {'key': 'val'}, {'key': 'new-val'})])
|
||||
({'key': 'new-val'}, {'key': 'val'}, {'key': 'val'}),
|
||||
({'key': 'new-val', 'unset': 'unset'}, {'key': 'val'}, {'key': 'val', 'unset': 'unset'})])
|
||||
def test_wrap_settings(override, old, new):
|
||||
fn = lambda _, settings: settings
|
||||
assert wrap_settings(override)(fn)(None, Settings(old)) == new
|
||||
|
@ -23,7 +23,9 @@ class Settings(dict):
|
||||
return self.get(item)
|
||||
|
||||
def update(self, **kwargs):
|
||||
"""Returns new settings with new values from `kwargs`."""
|
||||
conf = dict(self)
|
||||
conf.update(kwargs)
|
||||
"""
|
||||
Returns new settings with values from `kwargs` for unset settings.
|
||||
"""
|
||||
conf = dict(kwargs)
|
||||
conf.update(self)
|
||||
return Settings(conf)
|
||||
|
Loading…
x
Reference in New Issue
Block a user