def test_remove_old_packages(self): feed_url = "http://jmatthews.fedorapeople.org/repo_multiple_versions/" repo = mock.Mock(spec=Repository) repo.working_dir = self.working_dir repo.id = "test_remove_old_packages" sync_conduit = importer_mocks.get_sync_conduit(type_id=TYPE_ID_RPM, pkg_dir=self.pkg_dir) ### # Test that old packages are not in rpmList and are never intended to be downloaded # Additionallity verify that already existing packages which are NOT orphaned are also # removed with remove_old functionality ### config = importer_mocks.get_basic_config(feed_url=feed_url, remove_old=False, num_old_packages=0) importerRPM = importer_rpm.ImporterRPM() status, summary, details = importerRPM.sync(repo, sync_conduit, config) self.assertTrue(status) self.assertEquals(summary["num_synced_new_rpms"], 12) pkgs = self.get_files_in_dir("*.rpm", self.pkg_dir) self.assertEquals(len(pkgs), 12) yumRepoGrinder = importer_rpm.get_yumRepoGrinder(repo.id, repo.working_dir, config) yumRepoGrinder.setup(basepath=repo.working_dir) rpm_items = yumRepoGrinder.getRPMItems() yumRepoGrinder.stop() del yumRepoGrinder self.assertEquals(len(rpm_items), 12) existing_units = [] for rpm in rpm_items: u = Unit( TYPE_ID_RPM, importer_rpm.form_rpm_unit_key(rpm), importer_rpm.form_rpm_metadata(rpm), os.path.join(self.pkg_dir, rpm["pkgpath"], rpm["filename"]), ) existing_units.append(u) config = importer_mocks.get_basic_config(feed_url=feed_url, remove_old=True, num_old_packages=6) sync_conduit = importer_mocks.get_sync_conduit( type_id=TYPE_ID_RPM, existing_units=existing_units, pkg_dir=self.pkg_dir ) importerRPM = importer_rpm.ImporterRPM() status, summary, details = importerRPM.sync(repo, sync_conduit, config) self.assertTrue(status) self.assertEquals(summary["num_rpms"], 7) self.assertEquals(summary["num_orphaned_rpms"], 5) self.assertEquals(summary["num_synced_new_rpms"], 0) self.assertEquals(summary["num_not_synced_rpms"], 0) pkgs = self.get_files_in_dir("*.rpm", self.pkg_dir) self.assertEquals(len(pkgs), 7) config = importer_mocks.get_basic_config(feed_url=feed_url, remove_old=True, num_old_packages=0) importerRPM = importer_rpm.ImporterRPM() status, summary, details = importerRPM.sync(repo, sync_conduit, config) self.assertTrue(status) self.assertEquals(summary["num_rpms"], 1) self.assertEquals(summary["num_orphaned_rpms"], 11) self.assertEquals(summary["num_synced_new_rpms"], 0) self.assertEquals(summary["num_not_synced_rpms"], 0) pkgs = self.get_files_in_dir("*.rpm", self.pkg_dir) self.assertEquals(len(pkgs), 1)
def test_simple_yum_ops_a(self): feed_url = "file://empty" repo = mock.Mock(spec=Repository) repo.working_dir = self.working_dir repo.id = "test_simple_yum_ops" config = importer_mocks.get_basic_config(feed_url=feed_url) grind = importer_rpm.get_yumRepoGrinder(repo.id, repo.working_dir, config) try: grind.setup(basepath=repo.working_dir, num_retries=0, retry_delay=0) except: pass self.assertFalse(os.path.exists(os.path.join("./", repo.id)))
def test_grinder_config(self): repo_label = "test_grinder_config" feed_url = "http://repos.fedorapeople.org/repos/pulp/pulp/demo_repos/pulp_unittest/" num_threads = 25 max_speed = 1 proxy_url = "http://example.com" proxy_port = "3128" proxy_user = "******" proxy_pass = "******" ssl_verify = True ssl_ca_cert = "ca_cert_data" ssl_client_cert = "client_cert_data" ssl_client_key = "client_key_data" newest = True remove_old = True num_old_packages = 99 tmp_path = "/tmp" config = importer_mocks.get_basic_config( feed_url=feed_url, num_threads=num_threads, max_speed=max_speed, proxy_url=proxy_url, proxy_port=proxy_port, proxy_user=proxy_user, proxy_pass=proxy_pass, ssl_verify=ssl_verify, ssl_ca_cert=ssl_ca_cert, ssl_client_cert=ssl_client_cert, ssl_client_key=ssl_client_key, newest=newest, remove_old=remove_old, num_old_packages=num_old_packages, ) yumRepoGrinder = importer_rpm.get_yumRepoGrinder(repo_label, tmp_path, config) self.assertEquals(yumRepoGrinder.repo_label, repo_label) self.assertEquals(yumRepoGrinder.repo_url, feed_url) self.assertEquals(yumRepoGrinder.numThreads, num_threads) self.assertEquals(yumRepoGrinder.max_speed, max_speed) self.assertEquals(yumRepoGrinder.proxy_url, proxy_url) self.assertEquals(yumRepoGrinder.proxy_port, proxy_port) self.assertEquals(yumRepoGrinder.proxy_user, proxy_user) self.assertEquals(yumRepoGrinder.proxy_pass, proxy_pass) self.assertEquals(yumRepoGrinder.sslverify, ssl_verify) self.assertEquals(yumRepoGrinder.newest, newest) self.assertEquals(yumRepoGrinder.remove_old, remove_old) self.assertEquals(yumRepoGrinder.numOldPackages, num_old_packages) self.assertEquals(yumRepoGrinder.tmp_path, tmp_path) # Verify that the pkgpath is set to "./", hardcoded in importer_rpm to # force the package dir to be a relative path with the checksum components in the path self.assertEquals(yumRepoGrinder.pkgpath, "./")