def test_isNecessaryToUpdate_returnsTrueIfVersionsAreEqualButNoLibrariesInDestinationPath( self): self.updater.current_version_info = VersionInfo(**versionTestData) self.updater.onlineVersionInfo = VersionInfo(**versionTestData) os.makedirs(self.updater.destination_path) self.assertTrue(self.updater.is_necessary_to_update())
def test_isNecessaryToUpdate_returnsTrueIfDestinationPathDoesNotExist( self): self.updater.current_version_info = VersionInfo(**versionTestData) self.updater.onlineVersionInfo = VersionInfo(**versionTestData) if os.path.exists(self.updater.destination_path): shutil.rmtree(self.updater.destination_path) self.assertTrue(self.updater.is_necessary_to_update())
def test_isNecessaryToUpdate_returnsTrueIfVersionsAreEqualAndLibrariesInDestinationPath( self): self.updater.current_version_info = VersionInfo(**versionTestData) self.updater.onlineVersionInfo = VersionInfo(**versionTestData) for libraryName in versionTestData["libraries_names"]: if not os.path.exists(self.updater.destination_path + os.sep + libraryName): os.makedirs(self.updater.destination_path + os.sep + libraryName) self.assertFalse(self.updater.is_necessary_to_update())
def set_lib_version(self, version): if Config.check_libraries_updates: version_info = VersionInfo(version, Config.bitbloq_libs_download_url_template.format(version=version)) if self.lib_updater.is_necessary_to_update(version_to_compare=version_info): self.lib_updater.update(version_info) else: return "Check libraries flag is false"
def test_upload_writesLibrariesInDestinationPathWithControlledData(self): version = VersionInfo( "0.0.5", "file:" + os.sep + os.sep + self.res_path + os.sep + "bitbloqLibsV5.zip") self.updater.currentVersionInfoPath = os.path.join( pm.TEST_SETTINGS_PATH, "Updater", "currentVersion.version") self.__testUploadProcess(version)
def download_version(self, version, infoCallback=None): confirmationPath = pm.get_dst_path_for_update(version) + ".confirm" zipDstPath = pm.get_dst_path_for_update(version) + ".zip" if not os.path.exists(confirmationPath): url = self.get_download_url(VersionInfo(version)) self.downloader.download(url, dst=zipDstPath, info_callback=infoCallback).result() utils.extract_zip(zipDstPath, pm.get_dst_path_for_update(version)) os.remove(zipDstPath) with open(confirmationPath, "w"): pass
def _cmd(self, comparing_values, comparing_function): for new_version, old_version in comparing_values: new_v = VersionInfo(new_version) old_v = VersionInfo(old_version) comparing_function(new_v, old_v)
def __init__(self): Updater.__init__(self) self.current_version_info = VersionInfo( Version.bitbloq_libs, libraries_names=Version.bitbloq_libs_libraries) self.name = "BitbloqLibsUpdater"
def test_isNecessaryToUpdate_returnsTrueIfVersionsAreDifferent(self): self.updater.current_version_info = VersionInfo(**versionTestData) self.updater.onlineVersionInfo = VersionInfo(**onlineVersionTestData) self.updater.current_version_info.version = "0.1.1" self.assertTrue(self.updater.is_necessary_to_update())
def test_isNecessaryToUpdate_raiseExceptionIfCurrentVersionIsNone(self): self.updater.onlineVersionInfo = VersionInfo(**onlineVersionTestData) with self.assertRaises(Exception): self.updater.is_necessary_to_update()
def __extract_version_from_path(self, path): version_to_end = path.rsplit("_", 1)[1] return VersionInfo(version_to_end.rsplit(".", 1)[0])