Beispiel #1
0
 def test_eq(self):
     v1 = Version(2, 3, 0, 'alpha', 1)
     v2 = Version(2, 3, 0, 'a', 1)
     v3 = Version(2, 3, 0, 'final', 1)
     self.assertEqual(v1, v1)
     self.assertEqual(v1, v2)
     self.assertFalse(v1 == v3)
Beispiel #2
0
 def test_ne(self):
     v1 = Version(2, 3, 0, 'alpha', 1)
     v2 = Version(2, 3, 0, 'a', 1)
     v3 = Version(2, 3, 0, 'final', 1)
     self.assertFalse(v1 != v1)
     self.assertFalse(v1 != v2)
     self.assertTrue(v1 != v3)
Beispiel #3
0
    def test_lt(self):
        v1 = Version(2, 3, 0, 'dev', 1)
        v2 = Version(2, 3, 0, 'alpha', 1)
        self.assertLess(v1, v2)
        self.assertFalse(v2 < v2)

        v1 = Version(2, 3, 0, 'final', 1)
        v2 = Version(2, 10, 0, 'final', 1)
        self.assertLess(v1, v2)
Beispiel #4
0
def version_to_string(version, short=False):
    """Deprecated: Use picard.version.Version.to_string instead"""
    if len(version) != 5:
        raise VersionError("Length != 5")
    if not isinstance(version, Version):
        version = Version(*version)
    return version.to_string(short=short)
Beispiel #5
0
 def _backup_settings(self):
     if Version(0, 0, 0) < self._version < PICARD_VERSION:
         backup_path = self._versioned_config_filename()
         log.info('Backing up config file to %s', backup_path)
         try:
             shutil.copyfile(self.fileName(), backup_path)
         except OSError:
             log.error('Failed backing up config file to %s', backup_path)
Beispiel #6
0
 def test_version_conversion_short(self):
     versions = (
         (Version(1, 1, 0, 'final', 0), '1.1'),
         (Version(1, 1, 1, 'final', 0), '1.1.1'),
         (Version(0, 0, 1, 'dev', 1), '0.0.1.dev1'),
         (Version(1, 1, 0, 'dev', 0), '1.1.0.dev0'),
         (Version(1, 1, 2, 'alpha', 2), '1.1.2a2'),
         (Version(1, 1, 2, 'a', 2), '1.1.2a2'),
         (Version(1, 1, 2, 'beta', 2), '1.1.2b2'),
         (Version(1, 1, 2, 'b', 2), '1.1.2b2'),
         (Version(1, 1, 2, 'rc', 2), '1.1.2rc2'),
     )
     for v, s in versions:
         self.assertEqual(version_to_string(v, short=True), s)
         self.assertEqual(v.to_string(short=True), s)
         self.assertEqual(v, Version.from_string(s))
         self.assertEqual(v, version_from_string(s))
Beispiel #7
0
 def test_version_conversion(self):
     versions = (
         (Version(1, 1, 0, 'final', 0), '1.1.0.final0'),
         (Version(0, 0, 1, 'dev', 1), '0.0.1.dev1'),
         (Version(1, 1, 0, 'dev', 0), '1.1.0.dev0'),
         (Version(999, 999, 999, 'dev', 999), '999.999.999.dev999'),
         (Version(1, 1, 2, 'alpha', 2), '1.1.2.alpha2'),
         (Version(1, 1, 2, 'a', 2), '1.1.2.alpha2'),
         (Version(1, 1, 2, 'beta', 2), '1.1.2.beta2'),
         (Version(1, 1, 2, 'b', 2), '1.1.2.beta2'),
         (Version(1, 1, 2, 'rc', 2), '1.1.2.rc2'),
     )
     for v, s in versions:
         self.assertEqual(version_to_string(v), s)
         self.assertEqual(str(v), s)
         self.assertEqual(v, Version.from_string(s))
         self.assertEqual(v, version_from_string(s))
Beispiel #8
0
    def run_upgrade_hooks(self, outputfunc=None):
        """Executes registered functions to upgrade config version to the latest"""
        if self._version == Version(0, 0, 0, 'dev', 0):
            # This is a freshly created config
            self._version = PICARD_VERSION
            self._write_version()
            return
        if not self._upgrade_hooks:
            return
        if self._version >= PICARD_VERSION:
            if self._version > PICARD_VERSION:
                print("Warning: config file %s was created by a more recent "
                      "version of Picard (current is %s)" % (
                          self._version.to_string(),
                          PICARD_VERSION.to_string()
                      ))
            return
        for version in sorted(self._upgrade_hooks):
            hook = self._upgrade_hooks[version]
            if self._version < version:
                try:
                    if outputfunc and hook['func'].__doc__:
                        outputfunc("Config upgrade %s -> %s: %s" % (
                                   self._version.to_string(),
                                   version.to_string(),
                                   hook['func'].__doc__.strip()))
                    hook['func'](self, *hook['args'])
                except BaseException:
                    import traceback
                    raise ConfigUpgradeError(
                        "Error during config upgrade from version %s to %s "
                        "using %s():\n%s" % (
                            self._version.to_string(),
                            version.to_string(),
                            hook['func'].__name__,
                            traceback.format_exc()
                        ))
                else:
                    hook['done'] = True
                    self._version = version
                    self._write_version()
            else:
                # hook is not applicable, mark as done
                hook['done'] = True

        if all(map(itemgetter("done"), self._upgrade_hooks.values())):
            # all hooks were executed, ensure config is marked with latest version
            self._version = PICARD_VERSION
            self._write_version()
Beispiel #9
0
 def _display_results(self):
     # Display results to user.
     key = ''
     high_version = PICARD_VERSION
     for test_key in PROGRAM_UPDATE_LEVELS:
         update_level = PROGRAM_UPDATE_LEVELS[test_key]['name']
         version_tuple = self._available_versions.get(update_level, {}).get(
             'version', (0, 0, 0, ''))
         try:
             test_version = Version(*version_tuple)
         except (TypeError, VersionError):
             log.error('Invalid version %r for update level %s.' %
                       (version_tuple, update_level))
             continue
         if self._update_level >= test_key and test_version > high_version:
             key = PROGRAM_UPDATE_LEVELS[test_key]['name']
             high_version = test_version
     if key:
         if QMessageBox.information(
                 self._parent, _("Picard Update"),
                 _("A new version of Picard is available.\n\n"
                   "This version: {picard_old_version}\n"
                   "New version: {picard_new_version}\n\n"
                   "Would you like to download the new version?").format(
                       picard_old_version=PICARD_FANCY_VERSION_STR,
                       picard_new_version=self._available_versions[key]
                       ['tag']), QMessageBox.StandardButton.Ok
                 | QMessageBox.StandardButton.Cancel, QMessageBox.
                 StandardButton.Cancel) == QMessageBox.StandardButton.Ok:
             webbrowser2.open(
                 self._available_versions[key]['urls']['download'])
     else:
         if self._show_always:
             if self._update_level in PROGRAM_UPDATE_LEVELS:
                 update_level = PROGRAM_UPDATE_LEVELS[
                     self._update_level]['title']
             else:
                 update_level = N_('unknown')
             QMessageBox.information(
                 self._parent, _("Picard Update"),
                 _("There is no update currently available for your subscribed update level: {update_level}\n\n"
                   "Your version: {picard_old_version}\n").format(
                       update_level=_(update_level),
                       picard_old_version=PICARD_FANCY_VERSION_STR,
                   ), QMessageBox.StandardButton.Ok,
                 QMessageBox.StandardButton.Ok)
Beispiel #10
0
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

from picard.version import (
    Version,
    VersionError,
)

PICARD_ORG_NAME = "MusicBrainz"
PICARD_APP_NAME = "Picard"
PICARD_DISPLAY_NAME = "MusicBrainz Picard"
PICARD_APP_ID = "org.musicbrainz.Picard"
PICARD_DESKTOP_NAME = PICARD_APP_ID + ".desktop"
PICARD_VERSION = Version(2, 3, 2, 'dev', 1)

# optional build version
# it should be in the form '<platform>_<YYMMDDHHMMSS>'
# ie. win32_20140415091256
PICARD_BUILD_VERSION_STR = ""


def version_to_string(version, short=False):
    """Deprecated: Use picard.version.Version.to_string instead"""
    if len(version) != 5:
        raise VersionError("Length != 5")
    if not isinstance(version, Version):
        version = Version(*version)
    return version.to_string(short=short)
Beispiel #11
0
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.


from picard.version import (
    Version,
    VersionError,
)


PICARD_ORG_NAME = "MusicBrainz"
PICARD_APP_NAME = "Picard"
PICARD_DISPLAY_NAME = "MusicBrainz Picard"
PICARD_APP_ID = "org.musicbrainz.Picard"
PICARD_DESKTOP_NAME = PICARD_APP_ID + ".desktop"
PICARD_VERSION = Version(2, 5, 6, 'dev', 1)


# optional build version
# it should be in the form '<platform>_<YYMMDDHHMMSS>'
# ie. win32_20140415091256
PICARD_BUILD_VERSION_STR = ""


def version_to_string(version, short=False):
    """Deprecated: Use picard.version.Version.to_string instead"""
    if len(version) != 5:
        raise VersionError("Length != 5")
    if not isinstance(version, Version):
        version = Version(*version)
    return version.to_string(short=short)
Beispiel #12
0
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

from picard.version import (
    Version,
    VersionError,
)

PICARD_ORG_NAME = "MusicBrainz"
PICARD_APP_NAME = "Picard"
PICARD_DISPLAY_NAME = "MusicBrainz Picard"
PICARD_APP_ID = "org.musicbrainz.Picard"
PICARD_DESKTOP_NAME = PICARD_APP_ID + ".desktop"
PICARD_VERSION = Version(2, 4, 3, 'dev', 1)

# optional build version
# it should be in the form '<platform>_<YYMMDDHHMMSS>'
# ie. win32_20140415091256
PICARD_BUILD_VERSION_STR = ""


def version_to_string(version, short=False):
    """Deprecated: Use picard.version.Version.to_string instead"""
    if len(version) != 5:
        raise VersionError("Length != 5")
    if not isinstance(version, Version):
        version = Version(*version)
    return version.to_string(short=short)
Beispiel #13
0
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

from picard.version import (
    Version,
    VersionError,
)

PICARD_ORG_NAME = "MusicBrainz"
PICARD_APP_NAME = "Picard"
PICARD_DISPLAY_NAME = "MusicBrainz Picard"
PICARD_APP_ID = "org.musicbrainz.Picard"
PICARD_DESKTOP_NAME = PICARD_APP_ID + ".desktop"
PICARD_VERSION = Version(2, 4, 0, 'final', 0)

# optional build version
# it should be in the form '<platform>_<YYMMDDHHMMSS>'
# ie. win32_20140415091256
PICARD_BUILD_VERSION_STR = ""


def version_to_string(version, short=False):
    """Deprecated: Use picard.version.Version.to_string instead"""
    if len(version) != 5:
        raise VersionError("Length != 5")
    if not isinstance(version, Version):
        version = Version(*version)
    return version.to_string(short=short)
Beispiel #14
0
 def test_le(self):
     v1 = Version(2, 3, 0, 'dev', 1)
     v2 = Version(2, 3, 0, 'alpha', 1)
     self.assertLessEqual(v1, v2)
     self.assertLessEqual(v2, v2)
Beispiel #15
0
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

from picard.version import (
    Version,
    VersionError,
)

PICARD_ORG_NAME = "MusicBrainz"
PICARD_APP_NAME = "Picard"
PICARD_DISPLAY_NAME = "MusicBrainz Picard"
PICARD_APP_ID = "org.musicbrainz.Picard"
PICARD_DESKTOP_NAME = PICARD_APP_ID + ".desktop"
PICARD_VERSION = Version(2, 6, 0, 'dev', 1)

# optional build version
# it should be in the form '<platform>_<YYMMDDHHMMSS>'
# ie. win32_20140415091256
PICARD_BUILD_VERSION_STR = ""


def version_to_string(version, short=False):
    """Deprecated: Use picard.version.Version.to_string instead"""
    if len(version) != 5:
        raise VersionError("Length != 5")
    if not isinstance(version, Version):
        version = Version(*version)
    return version.to_string(short=short)
Beispiel #16
0
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

from picard.version import (
    Version,
    VersionError,
)

PICARD_ORG_NAME = "MusicBrainz"
PICARD_APP_NAME = "Picard"
PICARD_DISPLAY_NAME = "MusicBrainz Picard"
PICARD_APP_ID = "org.musicbrainz.Picard"
PICARD_DESKTOP_NAME = PICARD_APP_ID + ".desktop"
PICARD_VERSION = Version(2, 7, 0, 'dev', 3)

# optional build version
# it should be in the form '<platform>_<YYMMDDHHMMSS>'
# ie. win32_20140415091256
PICARD_BUILD_VERSION_STR = ""


def version_to_string(version, short=False):
    """Deprecated: Use picard.version.Version.to_string instead"""
    if len(version) != 5:
        raise VersionError("Length != 5")
    if not isinstance(version, Version):
        version = Version(*version)
    return version.to_string(short=short)
Beispiel #17
0
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

from picard.version import (
    Version,
    VersionError,
)


PICARD_ORG_NAME = "MusicBrainz"
PICARD_APP_NAME = "Picard"
PICARD_DISPLAY_NAME = "MusicBrainz Picard"
PICARD_APP_ID = "org.musicbrainz.Picard"
PICARD_DESKTOP_NAME = PICARD_APP_ID + ".desktop"
PICARD_VERSION = Version(2, 3, 0, 'alpha', 1)


# optional build version
# it should be in the form '<platform>_<YYMMDDHHMMSS>'
# ie. win32_20140415091256
PICARD_BUILD_VERSION_STR = ""


def version_to_string(version, short=False):
    if len(version) != 5:
        raise VersionError("Length != 5")
    if not isinstance(version, Version):
        version = Version(*version)
    return version.to_string(short=short)
Beispiel #18
0
def version_to_string(version, short=False):
    if len(version) != 5:
        raise VersionError("Length != 5")
    if not isinstance(version, Version):
        version = Version(*version)
    return version.to_string(short=short)
Beispiel #19
0
 def test_ge(self):
     v1 = Version(2, 3, 0, 'alpha', 1)
     v2 = Version(2, 3, 0, 'dev', 1)
     self.assertGreaterEqual(v1, v2)
     self.assertGreaterEqual(v2, v2)
Beispiel #20
0
 def test_gt(self):
     v1 = Version(2, 3, 0, 'alpha', 1)
     v2 = Version(2, 3, 0, 'dev', 1)
     self.assertGreater(v1, v2)
     self.assertFalse(v2 > v2)
Beispiel #21
0
 def version(self):
     try:
         return Version.from_string(self.data['PLUGIN_VERSION'])
     except (KeyError, VersionError):
         return Version(0, 0, 0)
Beispiel #22
0
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

from picard.version import (
    Version,
    VersionError,
)

PICARD_ORG_NAME = "MusicBrainz"
PICARD_APP_NAME = "Picard"
PICARD_DISPLAY_NAME = "MusicBrainz Picard"
PICARD_APP_ID = "org.musicbrainz.Picard"
PICARD_DESKTOP_NAME = PICARD_APP_ID + ".desktop"
PICARD_VERSION = Version(2, 5, 0, 'dev', 2)

# optional build version
# it should be in the form '<platform>_<YYMMDDHHMMSS>'
# ie. win32_20140415091256
PICARD_BUILD_VERSION_STR = ""


def version_to_string(version, short=False):
    """Deprecated: Use picard.version.Version.to_string instead"""
    if len(version) != 5:
        raise VersionError("Length != 5")
    if not isinstance(version, Version):
        version = Version(*version)
    return version.to_string(short=short)
Beispiel #23
0
 def version(self):
     try:
         return Version.from_string(self.__dict__['version'])
     except (KeyError, VersionError):
         return Version(0, 0, 0)
Beispiel #24
0
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

from picard.version import (
    Version,
    VersionError,
)

PICARD_ORG_NAME = "MusicBrainz"
PICARD_APP_NAME = "Picard"
PICARD_DISPLAY_NAME = "MusicBrainz Picard"
PICARD_APP_ID = "org.musicbrainz.Picard"
PICARD_DESKTOP_NAME = PICARD_APP_ID + ".desktop"
PICARD_VERSION = Version(2, 3, 2, 'final', 0)

# optional build version
# it should be in the form '<platform>_<YYMMDDHHMMSS>'
# ie. win32_20140415091256
PICARD_BUILD_VERSION_STR = ""


def version_to_string(version, short=False):
    """Deprecated: Use picard.version.Version.to_string instead"""
    if len(version) != 5:
        raise VersionError("Length != 5")
    if not isinstance(version, Version):
        version = Version(*version)
    return version.to_string(short=short)
Beispiel #25
0
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

from picard.version import (
    Version,
    VersionError,
)

PICARD_ORG_NAME = "MusicBrainz"
PICARD_APP_NAME = "Picard"
PICARD_DISPLAY_NAME = "MusicBrainz Picard"
PICARD_APP_ID = "org.musicbrainz.Picard"
PICARD_DESKTOP_NAME = PICARD_APP_ID + ".desktop"
PICARD_VERSION = Version(2, 6, 0, 'beta', 2)

# optional build version
# it should be in the form '<platform>_<YYMMDDHHMMSS>'
# ie. win32_20140415091256
PICARD_BUILD_VERSION_STR = ""


def version_to_string(version, short=False):
    """Deprecated: Use picard.version.Version.to_string instead"""
    if len(version) != 5:
        raise VersionError("Length != 5")
    if not isinstance(version, Version):
        version = Version(*version)
    return version.to_string(short=short)
Beispiel #26
0
 def test_sortkey(self):
     self.assertEqual((2, 1, 3, 4, 2), Version(2, 1, 3, 'final', 2).sortkey)
     self.assertEqual((2, 0, 0, 1, 0), Version(2, 0, 0, 'a', 0).sortkey)
     self.assertEqual((2, 0, 0, 1, 0), Version(2, 0, 0, 'alpha', 0).sortkey)
Beispiel #27
0
 def test_version_single_digit(self):
     l, s = (2, 0, 0, 'final', 0), '2'
     self.assertEqual(l, version_from_string(s))
     self.assertEqual(l, Version(2))
Beispiel #28
0
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

from picard.version import (
    Version,
    VersionError,
)

PICARD_ORG_NAME = "MusicBrainz"
PICARD_APP_NAME = "Picard"
PICARD_DISPLAY_NAME = "MusicBrainz Picard"
PICARD_APP_ID = "org.musicbrainz.Picard"
PICARD_DESKTOP_NAME = PICARD_APP_ID + ".desktop"
PICARD_VERSION = Version(2, 7, 1, 'final', 0)

# optional build version
# it should be in the form '<platform>_<YYMMDDHHMMSS>'
# ie. win32_20140415091256
PICARD_BUILD_VERSION_STR = ""


def version_to_string(version, short=False):
    """Deprecated: Use picard.version.Version.to_string instead"""
    if len(version) != 5:
        raise VersionError("Length != 5")
    if not isinstance(version, Version):
        version = Version(*version)
    return version.to_string(short=short)