def upload_dummy_package(self, config): filename = "my-app-0.1-linux-ubuntu-xenial-x64.deb" write_file(filename, "") sync._upload_file('127.0.0.1', config.ftpserver.port, config.ftpserver.username, config.ftpserver.password, 'main-stable', filename) return filename
def test_consume_file(self): indexer = vmware_studio_updates.VmwareStudioUpdatesIndexer( self.config, INDEX) indexer.initialise() src = 'host-power-tools-for-vmware-1.6.13-vmware-esx-x86_OVF10_UPDATE_ZIP.zip' dst = path.join(indexer.base_directory, 'host-power-tools-for-vmware') utils.write_file(src, '') with mock.patch.object( vmware_studio_updates, 'log_execute_assert_success') as log_execute_assert_success: indexer.consume_file(src, '', '') self.assertTrue( path.exists( path.join(indexer.base_directory, 'host-power-tools-for-vmware', src))) log_execute_assert_success.assert_called_with( ['unzip', '-qq', '-o', path.join(dst, src), '-d', dst]) src = 'host-power-tools-for-vmware-1.7.4-vmware-esx-x86_OVF10_UPDATE_ZIP.zip' utils.write_file(src, '') with mock.patch.object( vmware_studio_updates, 'log_execute_assert_success') as log_execute_assert_success: indexer.consume_file(src, '', '') log_execute_assert_success.assert_called_with( ['unzip', '-qq', '-o', path.join(dst, src), '-d', dst]) src = 'host-power-tools-for-vmware-1.7.3-vmware-esx-x86_OVF10_UPDATE_ZIP.zip' utils.write_file(src, '') with mock.patch.object( vmware_studio_updates, 'log_execute_assert_success') as log_execute_assert_success: indexer.consume_file(src, '', '') log_execute_assert_success.assert_not_called() self.assertTrue( "1.7.4" in indexer._get_latest_update_file_in_directory( path.join(indexer.base_directory, 'host-power-tools-for-vmware')))
def rebuild_index(self): packages = [] for package in self._iter_packages(): releases = [] for release in sorted(self._iter_releases(package), reverse=True, key=lambda release: parse_version(release['version'])): release['distributions'] = list(self._iter_distributions(package, release)) if not release['distributions']: continue releases.append(release) write_file(path.join(package['abspath'], 'releases.json'), encode(releases, indent=4, large_object=True)) latest_release = self._get_latest_release(releases) latest_release_txt = path.join(package['abspath'], 'latest_release.txt') if latest_release: package['latest_version'] = latest_release['version'] package['installation_instructions'] = self._get_installation_instructions(package, latest_release) packages.append(package) write_file(latest_release_txt, latest_release['version']) elif path.exists(latest_release_txt): remove(latest_release_txt) sorted_packages = sorted(packages, key=lambda package: package['product_name']) write_file(path.join(self.base_directory, 'packages.json'), encode(sorted_packages, indent=4, large_object=True))
def rebuild_index(self): packages = [] log_execute_assert_success([ 'find', self.base_directory, '-type', 'd', '-empty', '-print', '-delete' ]) for package in self._iter_packages(): releases = [] for release in sorted( self._iter_releases(package), reverse=True, key=lambda release: parse_version(release['version'])): release['distributions'] = list( self._iter_distributions(package, release)) if not release['distributions']: continue releases.append(release) write_file(path.join(package['abspath'], 'releases.json'), encode(releases, indent=4, large_object=True)) latest_release = self._get_latest_release(releases) latest_release_txt = path.join(package['abspath'], 'latest_release.txt') if latest_release: package['latest_version'] = latest_release['version'] package['latest_version_release_date'] = latest_release[ 'release_date'] package[ 'installation_instructions'] = self._get_installation_instructions( package, latest_release) packages.append(package) write_file(latest_release_txt, latest_release['version']) elif path.exists(latest_release_txt): remove(latest_release_txt) sorted_packages = sorted(packages, key=lambda package: package['product_name']) write_file(path.join(self.base_directory, 'packages.json'), encode(sorted_packages, indent=4, large_object=True))
def test_consume_file(self): indexer = vmware_studio_updates.VmwareStudioUpdatesIndexer(self.config, INDEX) indexer.initialise() src = 'host-power-tools-for-vmware-1.6.13-vmware-esx-x86_OVF10_UPDATE_ZIP.zip' dst = path.join(indexer.base_directory, 'host-power-tools-for-vmware') utils.write_file(src, '') with mock.patch.object(vmware_studio_updates, 'log_execute_assert_success') as log_execute_assert_success: indexer.consume_file(src, '', '') self.assertTrue(path.exists(path.join(indexer.base_directory, 'host-power-tools-for-vmware', src))) log_execute_assert_success.assert_called_with(['unzip', '-qq', '-o', path.join(dst, src), '-d', dst]) src = 'host-power-tools-for-vmware-1.7.4-vmware-esx-x86_OVF10_UPDATE_ZIP.zip' utils.write_file(src, '') with mock.patch.object(vmware_studio_updates, 'log_execute_assert_success') as log_execute_assert_success: indexer.consume_file(src, '', '') log_execute_assert_success.assert_called_with(['unzip', '-qq', '-o', path.join(dst, src), '-d', dst]) src = 'host-power-tools-for-vmware-1.7.3-vmware-esx-x86_OVF10_UPDATE_ZIP.zip' utils.write_file(src, '') with mock.patch.object(vmware_studio_updates, 'log_execute_assert_success') as log_execute_assert_success: indexer.consume_file(src, '', '') log_execute_assert_success.assert_not_called() self.assertTrue("1.7.4" in indexer._get_latest_update_file_in_directory(path.join(indexer.base_directory, 'host-power-tools-for-vmware')))
def upload_dummy_package(self, config): filename = "my-app-0.1-linux-ubuntu-natty-x64.deb" write_file(filename, "") sync._upload_file('127.0.0.1', config.ftpserver.port, config.ftpserver.username, config.ftpserver.password, 'main-stable', filename) return filename