diff --git a/picard/__init__.py b/picard/__init__.py index a99c439046..eb50228dc6 100644 --- a/picard/__init__.py +++ b/picard/__init__.py @@ -41,7 +41,7 @@ PICARD_DISPLAY_NAME = "MusicBrainz Picard" PICARD_APP_ID = "org.musicbrainz.Picard" PICARD_DESKTOP_NAME = PICARD_APP_ID + ".desktop" -PICARD_VERSION = Version(3, 0, 0, 'dev', 4) +PICARD_VERSION = Version(3, 0, 0, 'dev', 5) # optional build version diff --git a/picard/config_upgrade.py b/picard/config_upgrade.py index ee0b7685ce..8627b99d3a 100644 --- a/picard/config_upgrade.py +++ b/picard/config_upgrade.py @@ -31,6 +31,7 @@ getmembers, isfunction, ) +import os import re import sys @@ -47,6 +48,7 @@ ) from picard.const.defaults import ( DEFAULT_FILE_NAMING_FORMAT, + DEFAULT_REPLACEMENT, DEFAULT_SCRIPT_NAME, ) from picard.const.sys import IS_FROZEN @@ -550,6 +552,15 @@ def upgrade_to_v3_0_0dev4(config): config.persist.remove('file_view_header_state') +def upgrade_to_v3_0_0dev5(config): + """Ensure "replace_dir_separator" contains no directory separator""" + replace_dir_separator = config.setting['replace_dir_separator'] + replace_dir_separator = replace_dir_separator.replace(os.sep, DEFAULT_REPLACEMENT) + if os.altsep: + replace_dir_separator = replace_dir_separator.replace(os.altsep, DEFAULT_REPLACEMENT) + config.setting['replace_dir_separator'] = replace_dir_separator + + def rename_option(config, old_opt, new_opt, option_type, default): _s = config.setting if old_opt in _s: diff --git a/test/test_config_upgrade.py b/test/test_config_upgrade.py index 66e7e8330c..3078f64ae9 100644 --- a/test/test_config_upgrade.py +++ b/test/test_config_upgrade.py @@ -21,6 +21,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +import os from PyQt6.QtCore import QByteArray @@ -66,9 +67,11 @@ upgrade_to_v2_8_0dev2, upgrade_to_v3_0_0dev3, upgrade_to_v3_0_0dev4, + upgrade_to_v3_0_0dev5, ) from picard.const.defaults import ( DEFAULT_FILE_NAMING_FORMAT, + DEFAULT_REPLACEMENT, DEFAULT_SCRIPT_NAME, ) from picard.util import unique_numbered_title @@ -541,3 +544,14 @@ def test_upgrade_to_v3_0_0dev4(self): upgrade_to_v3_0_0dev4(self.config) self.assertEqual(b'', self.config.persist['album_view_header_state']) self.assertEqual(b'', self.config.persist['file_view_header_state']) + + def test_upgrade_to_v3_0_0dev5(self): + TextOption('setting', 'replace_dir_separator', DEFAULT_REPLACEMENT) + self.config.setting['replace_dir_separator'] = os.sep + upgrade_to_v3_0_0dev5(self.config) + self.assertEqual(DEFAULT_REPLACEMENT, self.config.setting['replace_dir_separator']) + + if os.altsep: + self.config.setting['replace_dir_separator'] = os.altsep + upgrade_to_v3_0_0dev5(self.config) + self.assertEqual(DEFAULT_REPLACEMENT, self.config.setting['replace_dir_separator'])