Add a config version to the YAML file
This commit is contained in:
parent
cbf9da0b7e
commit
0f85898137
@ -54,7 +54,13 @@ class StateConfig(configparser.ConfigParser):
|
|||||||
|
|
||||||
class YamlConfig:
|
class YamlConfig:
|
||||||
|
|
||||||
"""A config stored on disk as YAML file."""
|
"""A config stored on disk as YAML file.
|
||||||
|
|
||||||
|
Class attributes:
|
||||||
|
VERSION: The current version number of the config file.
|
||||||
|
"""
|
||||||
|
|
||||||
|
VERSION = 1
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
save_manager = objreg.get('save-manager')
|
save_manager = objreg.get('save-manager')
|
||||||
@ -64,7 +70,7 @@ class YamlConfig:
|
|||||||
|
|
||||||
def _save(self):
|
def _save(self):
|
||||||
"""Save the changed settings to the YAML file."""
|
"""Save the changed settings to the YAML file."""
|
||||||
data = {'global': self.values}
|
data = {'config_version': self.VERSION, 'global': self.values}
|
||||||
with qtutils.savefile_open(self._filename) as f:
|
with qtutils.savefile_open(self._filename) as f:
|
||||||
f.write(textwrap.dedent("""
|
f.write(textwrap.dedent("""
|
||||||
# DO NOT edit this file by hand, qutebrowser will overwrite it.
|
# DO NOT edit this file by hand, qutebrowser will overwrite it.
|
||||||
|
@ -77,11 +77,12 @@ def test_yaml_config(fake_save_manager, config_tmpdir, old_config, insert):
|
|||||||
print(lines)
|
print(lines)
|
||||||
|
|
||||||
assert lines[0].startswith('# DO NOT edit this file by hand,')
|
assert lines[0].startswith('# DO NOT edit this file by hand,')
|
||||||
|
assert 'config_version: {}'.format(yaml.VERSION) in lines
|
||||||
|
|
||||||
if old_config is None and not insert:
|
if old_config is None and not insert:
|
||||||
assert lines[3] == 'global: {}'
|
assert 'global: {}' in lines
|
||||||
else:
|
else:
|
||||||
assert lines[3] == 'global:'
|
assert 'global:' in lines
|
||||||
|
|
||||||
# WORKAROUND for https://github.com/PyCQA/pylint/issues/574
|
# WORKAROUND for https://github.com/PyCQA/pylint/issues/574
|
||||||
if 'magenta' in (old_config or ''): # pylint: disable=superfluous-parens
|
if 'magenta' in (old_config or ''): # pylint: disable=superfluous-parens
|
||||||
|
Loading…
Reference in New Issue
Block a user