Esempio n. 1
0
 def test1(self):
     data = EasyAccessDict(self.version_data)
     assert _get_highest_version('Acme', 'mac', 'alpha', data,
                                 strict=True) == '4.4.2.0.5'
     assert _get_highest_version('Acme', 'mac', 'beta', data,
                                 strict=True) == '4.4.1.1.0'
     assert _get_highest_version('Acme', 'mac', 'stable', data,
                                 strict=True) == '4.4.3.2.0'
Esempio n. 2
0
 def test1(self):
     data = EasyAccessDict(self.version_data)
     assert _get_highest_version('Acme', 'mac', 'alpha',
                                 data, strict=True) == '4.4.2.0.5'
     assert _get_highest_version('Acme', 'mac', 'beta',
                                 data, strict=True) == '4.4.1.1.0'
     assert _get_highest_version('Acme', 'mac', 'stable',
                                 data, strict=True) == '4.4.3.2.0'
Esempio n. 3
0
    def _update_check(self, name, version, channel, strict):
        valid_channels = ['alpha', 'beta', 'stable']
        if channel not in valid_channels:
            log.debug('Invalid channel. May need to check spelling')
            channel = 'stable'
        self.name = name

        # Version object used for comparison
        version = _Version(version)
        self.version = str(version)

        # Will be set to true if we are updating the currently
        # running app and not an app's asset
        app = False

        if self.ready is False:
            # No json data is loaded.
            # User may need to call refresh
            log.debug('No update manifest found')
            return None

        # Checking if version file is verified before
        # processing data contained in the version file.
        # This was done by self._get_update_manifest
        if self.verified is False:
            log.debug('Failed version file verification')
            return None

        # If we are an app we will need restart functionality, so we'll
        # user AppUpdate instead of LibUpdate
        if self.FROZEN is True and self.name == self.app_name:
            app = True

        log.debug('Checking for %s updates...', name)
        latest = _get_highest_version(name, self.platform, channel,
                                      self.easy_data, strict)
        if latest is None:
            # If None is returned get_highest_version could
            # not find the supplied name in the version file
            log.debug('Could not find the latest version')
            return None

        # Change str to version object for easy comparison
        latest = _Version(latest)
        log.debug('Current version: %s', str(version))
        log.debug('Latest version: %s', str(latest))

        update_needed = latest > version
        log.debug('Update Needed: %s', update_needed)
        if latest <= version:
            log.debug('%s already updated to the latest version', name)
            return None

        # Config data to initialize update object
        data = {
            'strict': strict,
            'update_urls': self.update_urls,
            'name': self.name,
            'version': self.version,
            'easy_data': self.easy_data,
            'json_data': self.json_data,
            'data_dir': self.data_dir,
            'platform': self.platform,
            'channel': channel,
            'app_name': self.app_name,
            'verify': self.verify,
            'max_download_retries': self.max_download_retries,
            'progress_hooks': list(set(self.progress_hooks)),
            'urllib3_headers': self.urllib3_headers,
        }

        # Return update object with which handles downloading,
        # extracting updates
        if app is True:
            # AppUpdate is a subclass of LibUpdate that add methods
            # to restart the application
            return AppUpdate(data)
        else:
            return LibUpdate(data)
Esempio n. 4
0
 def test1(self):
     data = EasyAccessDict(self.version_data)
     assert _get_highest_version('Acme', 'mac', 'stable', data,
                                 strict=True) is None
Esempio n. 5
0
 def test1(self):
     data = EasyAccessDict(self.version_data)
     assert _get_highest_version('Acme', 'mac', 'alpha', data,
                                 strict=False) == '4.4.3.2.0'
Esempio n. 6
0
    def _update_check(self, name, version, channel, strict):
        valid_channels = ['alpha', 'beta', 'stable']
        if channel not in valid_channels:
            log.debug('Invalid channel. May need to check spelling')
            channel = 'stable'
        self.name = name

        # Version object used for comparison
        version = _Version(version)
        self.version = str(version)

        # Will be set to true if we are updating the currently
        # running app and not an app's asset
        app = False

        if self.ready is False:
            # No json data is loaded.
            # User may need to call refresh
            log.debug('No update manifest found')
            return None

        # Checking if version file is verified before
        # processing data contained in the version file.
        # This was done by self._get_update_manifest
        if self.verified is False:
            log.debug('Failed version file verification')
            return None

        # If we are an app we will need restart functionality, so we'll
        # user AppUpdate instead of LibUpdate
        if self.FROZEN is True and self.name == self.app_name:
            app = True

        log.debug('Checking for %s updates...', name)
        latest = _get_highest_version(name, self.platform, channel,
                                      self.easy_data, strict)
        if latest is None:
            # If None is returned get_highest_version could
            # not find the supplied name in the version file
            log.debug('Could not find the latest version')
            return None

        # Change str to version object for easy comparison
        latest = _Version(latest)
        log.debug('Current version: %s', str(version))
        log.debug('Latest version: %s', str(latest))

        update_needed = latest > version
        log.debug('Update Needed: %s', update_needed)
        if latest <= version:
            log.debug('%s already updated to the latest version', name)
            return None

        # Config data to initialize update object
        data = {
            'strict': strict,
            'update_urls': self.update_urls,
            'name': self.name,
            'version': self.version,
            'easy_data': self.easy_data,
            'json_data': self.json_data,
            'data_dir': self.data_dir,
            'platform': self.platform,
            'channel': channel,
            'app_name': self.app_name,
            'verify': self.verify,
            'max_download_retries': self.max_download_retries,
            'progress_hooks': list(set(self.progress_hooks)),
            'urllib3_headers': self.urllib3_headers,
        }

        # Return update object with which handles downloading,
        # extracting updates
        if app is True:
            # AppUpdate is a subclass of LibUpdate that add methods
            # to restart the application
            return AppUpdate(data)
        else:
            return LibUpdate(data)
Esempio n. 7
0
 def test1(self):
     data = EasyAccessDict(self.version_data)
     assert _get_highest_version('Acme', 'mac', 'stable',
                                 data, strict=True) is None
Esempio n. 8
0
 def test1(self):
     data = EasyAccessDict(self.version_data)
     assert _get_highest_version('Acme', 'mac', 'alpha',
                                 data, strict=False) == '4.4.3.2.0'