def _make_dummy_cs(self): """Create a dummy ContentSource object that only talks to a mocked yum""" real_yum = yum_src.yum yum_src.yum = Mock() real_setup_repo = yum_src.ContentSource.setup_repo yum_src.ContentSource.initgpgdir = Mock() yum_src.ContentSource.get_groups = Mock(return_value=None) # don't read configs mock.patch('spacewalk.common.suseLib.initCFG').start() mock.patch('spacewalk.common.suseLib.CFG').start() yum_src.initCFG = Mock() yum_src.CFG = Mock() yum_src.CFG.MOUNT_POINT = '' yum_src.CFG.PREPENDED_DIR = '' yum_src.fileutils.makedirs = Mock() yum_src.makedirs = Mock() yum_src.os.path.isdir = Mock() yum_src.get_proxy = Mock(return_value=(None, None, None)) cs = yum_src.ContentSource("http://example.com", "test_repo", org='') mockReturnPackages = MagicMock() mockReturnPackages.returnPackages = MagicMock(name="returnPackages") mockReturnPackages.returnPackages.return_value = [] cs.repo.getPackageSack = MagicMock(return_value=mockReturnPackages) cs.repo.includepkgs = [] cs.repo.exclude = [] yum_src.yum = real_yum yum_src.ContentSource.setup_repo = real_setup_repo return cs
def _create_yum_repo(self, repo_source): repo_label = self.cdn_repository_manager.get_content_source_label( repo_source) try: keys = self.cdn_repository_manager.get_repository_crypto_keys( repo_source['relative_url']) except CdnRepositoryNotFoundError: keys = [] log2(1, 1, "WARNING: Repository '%s' was not found." % repo_source['relative_url'], stream=sys.stderr) if keys: (ca_cert_file, client_cert_file, client_key_file) = reposync.write_ssl_set_cache( keys[0]['ca_cert'], keys[0]['client_cert'], keys[0]['client_key']) else: (ca_cert_file, client_cert_file, client_key_file) = (None, None, None) log2( 1, 1, "WARNING: No valid SSL certificates were found for repository '%s'." % repo_source['relative_url'], stream=sys.stderr) return yum_src.ContentSource(self.mount_point + str(repo_source['relative_url']), str(repo_label), org=None, no_mirrors=True, ca_cert_file=ca_cert_file, client_cert_file=client_cert_file, client_key_file=client_key_file)
def _make_dummy_cs(self): """Create a dummy ContentSource object that only talks to a mocked yum""" real_setup_repo = yum_src.ContentSource.setup_repo # don't read configs patch('spacewalk.common.suseLib.initCFG').start() patch('spacewalk.common.suseLib.CFG').start() yum_src.initCFG = Mock() yum_src.CFG = Mock() yum_src.CFG.MOUNT_POINT = '' yum_src.CFG.PREPENDED_DIR = '' yum_src.CFG.REPOSYNC_MINRATE = 1000 yum_src.CFG.REPOSYNC_TIMEOUT = 300 yum_src.fileutils.makedirs = Mock() yum_src.os.makedirs = Mock() yum_src.os.path.isdir = Mock() yum_src.get_proxy = Mock(return_value=(None, None, None)) cs = yum_src.ContentSource("http://example.com", "test_repo", org='') mockReturnPackages = MagicMock() mockReturnPackages.returnPackages = MagicMock(name="returnPackages") mockReturnPackages.returnPackages.return_value = [] cs.repo.is_configured = True cs.repo.includepkgs = [] cs.repo.exclude = [] yum_src.ContentSource.setup_repo = real_setup_repo return cs
def _create_yum_repo(self, repo_source): repo_label = self.cdn_repository_manager.get_content_source_label( repo_source) repo_plugin = yum_src.ContentSource(self.mount_point + str(repo_source['relative_url']), str(repo_label), org=None, no_mirrors=True) try: keys = self.cdn_repository_manager.get_repository_crypto_keys( repo_source['relative_url']) except CdnRepositoryNotFoundError: log2(1, 1, "ERROR: No SSL certificates were found for repository '%s'" % repo_source['relative_url'], stream=sys.stderr) return repo_plugin if len(keys) >= 1: (ca_cert_file, client_cert_file, client_key_file) = reposync.write_ssl_set_cache( keys[0]['ca_cert'], keys[0]['client_cert'], keys[0]['client_key']) repo_plugin.set_ssl_options(ca_cert_file, client_cert_file, client_key_file) else: log2( 1, 1, "ERROR: No valid SSL certificates were found for repository '%s'." % repo_source['relative_url'], stream=sys.stderr) return repo_plugin
def _count_packages_in_repo(repo_source, keys): repo_label = (repo_source.split(CFG.CDN_ROOT)[1])[1:].replace('/', '_') repo_plugin = yum_src.ContentSource(str(repo_source), str(repo_label)) repo_plugin.set_ssl_options(str(keys['ca_cert']), str(keys['client_cert']), str(keys['client_key'])) return repo_plugin.raw_list_packages()
def test_minrate_timeout_config(self): CFG = Mock() CFG.REPOSYNC_TIMEOUT = 42 CFG.REPOSYNC_MINRATE = 42 CFG.REPOSYNC_DOWNLOAD_THREADS = 42 # Throws ValueError if not defined CFG.MOUNT_POINT = "" CFG.PREPENDED_DIR = '' CFG.http_proxy = False grabber_spy = Mock() with patch( "spacewalk.satellite_tools.repo_plugins.yum_src.urlgrabber.urlread", grabber_spy ), patch( "spacewalk.satellite_tools.repo_plugins.yum_src.CFG", CFG ), patch( "spacewalk.satellite_tools.repo_plugins.yum_src.os.path.isfile", Mock(return_value=False), ): cs = yum_src.ContentSource("http://example.com/foo/", "test_repo", org="") cs.get_file("bar") self.assertEqual(grabber_spy.call_args[1]["timeout"], 42) self.assertEqual(grabber_spy.call_args[1]["minrate"], 42)
def _count_packages_in_repo(self, repo_source, keys): repo_label = repo_source[1:].replace('/', '_') repo_plugin = yum_src.ContentSource( self.mount_point + str(repo_source), str(repo_label)) repo_plugin.set_ssl_options(str(keys['ca_cert']), str(keys['client_cert']), str(keys['client_key'])) return repo_plugin.raw_list_packages()
def _create_yum_repo(self, repo_source): repo_label = self.cdn_repository_manager.get_content_source_label( repo_source) keys = self.cdn_repository_manager.get_repository_crypto_keys( repo_source['relative_url']) repo_plugin = yum_src.ContentSource(self.mount_point + str(repo_source['relative_url']), str(repo_label), org=None, no_mirrors=True) repo_plugin.set_ssl_options(str(keys['ca_cert']), str(keys['client_cert']), str(keys['client_key'])) return repo_plugin