Marco Ricci commited on 2024-12-19 15:04:11
Zeige 2 geänderte Dateien mit 26 Einfügungen und 10 Löschungen.
When obtaining the compatibility config filename `settings.json` from `cli._config_filename`, rename the corresponding subsystem from `settings` to `old settings.json`. Furthermore, pass that explicit subsystem upon each call. This frees us up to change the default subsystem in a future commit. Because this is not a public function, this is not a change in the public API. Some reformatting is necessary.
| ... | ... |
@@ -877,7 +877,7 @@ def derivepassphrase_export_vault( |
| 877 | 877 |
|
| 878 | 878 |
|
| 879 | 879 |
def _config_filename( |
| 880 |
- subsystem: str | None = 'settings', |
|
| 880 |
+ subsystem: str | None = 'old settings.json', |
|
| 881 | 881 |
) -> str | bytes | pathlib.Path: |
| 882 | 882 |
"""Return the filename of the configuration file for the subsystem. |
| 883 | 883 |
|
| ... | ... |
@@ -912,8 +912,10 @@ def _config_filename( |
| 912 | 912 |
# Use match/case here once Python 3.9 becomes unsupported. |
| 913 | 913 |
if subsystem is None: |
| 914 | 914 |
return path |
| 915 |
- elif subsystem in {'vault', 'settings'}: # noqa: RET505
|
|
| 915 |
+ elif subsystem == 'vault': # noqa: RET505 |
|
| 916 | 916 |
filename = f'{subsystem}.json'
|
| 917 |
+ elif subsystem == 'old settings.json': |
|
| 918 |
+ filename = 'settings.json' |
|
| 917 | 919 |
else: # pragma: no cover |
| 918 | 920 |
msg = f'Unknown configuration subsystem: {subsystem!r}'
|
| 919 | 921 |
raise AssertionError(msg) |
| ... | ... |
@@ -968,7 +970,7 @@ def _migrate_and_load_old_config() -> tuple[ |
| 968 | 970 |
|
| 969 | 971 |
""" |
| 970 | 972 |
new_filename = _config_filename(subsystem='vault') |
| 971 |
- old_filename = _config_filename() |
|
| 973 |
+ old_filename = _config_filename(subsystem='old settings.json') |
|
| 972 | 974 |
with open(old_filename, 'rb') as fileobj: |
| 973 | 975 |
data = json.load(fileobj) |
| 974 | 976 |
if not _types.is_vault_config(data): |
| ... | ... |
@@ -1741,7 +1743,9 @@ def derivepassphrase_vault( # noqa: C901,PLR0912,PLR0913,PLR0914,PLR0915 |
| 1741 | 1743 |
backup_config, exc = _migrate_and_load_old_config() |
| 1742 | 1744 |
except FileNotFoundError: |
| 1743 | 1745 |
return {'services': {}}
|
| 1744 |
- old_name = os.path.basename(_config_filename()) |
|
| 1746 |
+ old_name = os.path.basename( |
|
| 1747 |
+ _config_filename(subsystem='old settings.json') |
|
| 1748 |
+ ) |
|
| 1745 | 1749 |
new_name = os.path.basename(_config_filename(subsystem='vault')) |
| 1746 | 1750 |
deprecation.warning( |
| 1747 | 1751 |
( |
| ... | ... |
@@ -2034,7 +2034,9 @@ class TestCLITransition: |
| 2034 | 2034 |
) -> None: |
| 2035 | 2035 |
runner = click.testing.CliRunner() |
| 2036 | 2036 |
with tests.isolated_config(monkeypatch=monkeypatch, runner=runner): |
| 2037 |
- config_filename = cli._config_filename() |
|
| 2037 |
+ config_filename = cli._config_filename( |
|
| 2038 |
+ subsystem='old settings.json' |
|
| 2039 |
+ ) |
|
| 2038 | 2040 |
with open(config_filename, 'w', encoding='UTF-8') as fileobj: |
| 2039 | 2041 |
print(json.dumps(config, indent=2), file=fileobj) |
| 2040 | 2042 |
assert cli._migrate_and_load_old_config()[0] == config |
| ... | ... |
@@ -2063,7 +2065,9 @@ class TestCLITransition: |
| 2063 | 2065 |
) -> None: |
| 2064 | 2066 |
runner = click.testing.CliRunner() |
| 2065 | 2067 |
with tests.isolated_config(monkeypatch=monkeypatch, runner=runner): |
| 2066 |
- config_filename = cli._config_filename() |
|
| 2068 |
+ config_filename = cli._config_filename( |
|
| 2069 |
+ subsystem='old settings.json' |
|
| 2070 |
+ ) |
|
| 2067 | 2071 |
with open(config_filename, 'w', encoding='UTF-8') as fileobj: |
| 2068 | 2072 |
print(json.dumps(config, indent=2), file=fileobj) |
| 2069 | 2073 |
assert cli._migrate_and_load_old_config() == (config, None) |
| ... | ... |
@@ -2092,7 +2096,9 @@ class TestCLITransition: |
| 2092 | 2096 |
) -> None: |
| 2093 | 2097 |
runner = click.testing.CliRunner() |
| 2094 | 2098 |
with tests.isolated_config(monkeypatch=monkeypatch, runner=runner): |
| 2095 |
- config_filename = cli._config_filename() |
|
| 2099 |
+ config_filename = cli._config_filename( |
|
| 2100 |
+ subsystem='old settings.json' |
|
| 2101 |
+ ) |
|
| 2096 | 2102 |
with open(config_filename, 'w', encoding='UTF-8') as fileobj: |
| 2097 | 2103 |
print(json.dumps(config, indent=2), file=fileobj) |
| 2098 | 2104 |
os.mkdir(cli._config_filename(subsystem='vault')) |
| ... | ... |
@@ -2125,7 +2131,9 @@ class TestCLITransition: |
| 2125 | 2131 |
) -> None: |
| 2126 | 2132 |
runner = click.testing.CliRunner() |
| 2127 | 2133 |
with tests.isolated_config(monkeypatch=monkeypatch, runner=runner): |
| 2128 |
- config_filename = cli._config_filename() |
|
| 2134 |
+ config_filename = cli._config_filename( |
|
| 2135 |
+ subsystem='old settings.json' |
|
| 2136 |
+ ) |
|
| 2129 | 2137 |
with open(config_filename, 'w', encoding='UTF-8') as fileobj: |
| 2130 | 2138 |
print(json.dumps(config, indent=2), file=fileobj) |
| 2131 | 2139 |
with pytest.raises(ValueError, match=cli._INVALID_VAULT_CONFIG): |
| ... | ... |
@@ -2260,7 +2268,9 @@ class TestCLITransition: |
| 2260 | 2268 |
runner=runner, |
| 2261 | 2269 |
): |
| 2262 | 2270 |
with open( |
| 2263 |
- cli._config_filename(), 'w', encoding='UTF-8' |
|
| 2271 |
+ cli._config_filename(subsystem='old settings.json'), |
|
| 2272 |
+ 'w', |
|
| 2273 |
+ encoding='UTF-8', |
|
| 2264 | 2274 |
) as fileobj: |
| 2265 | 2275 |
print( |
| 2266 | 2276 |
json.dumps( |
| ... | ... |
@@ -2294,7 +2304,9 @@ class TestCLITransition: |
| 2294 | 2304 |
runner=runner, |
| 2295 | 2305 |
): |
| 2296 | 2306 |
with open( |
| 2297 |
- cli._config_filename(), 'w', encoding='UTF-8' |
|
| 2307 |
+ cli._config_filename(subsystem='old settings.json'), |
|
| 2308 |
+ 'w', |
|
| 2309 |
+ encoding='UTF-8', |
|
| 2298 | 2310 |
) as fileobj: |
| 2299 | 2311 |
print( |
| 2300 | 2312 |
json.dumps( |
| 2301 | 2313 |