def _test_02_repo_publish_finish(self): self.el.update(self.pulp, {'event_listener': ['repo.publish.finish']}) self.el.reload(self.pulp) repo_role = [repo for repo in ROLES.repos if repo.type == 'rpm'][0] repo, importer, [distributor] = YumRepo( id='publish_error_repo', importer=Importer.from_role(repo_role), distributors=[ YumDistributor(distributor_type_id='invalid_distributor_id', relative_url='xyz') ]).create(self.pulp) with deleting(self.pulp, repo, importer, distributor): response = repo.publish(self.pulp, 'invalid_distributor_id') self.assertPulpOK() with self.assertRaises(TaskFailure): # make sure the publish task failed Task.wait_for_report(self.pulp, response) task = Task.from_report(self.pulp, response) # assert the bin contains a request with a fained task in body self.bin.reload() assert self.bin.request_count == 1, 'invalid bin.request_count: %s' % self.bin.request_count el_request = self.bin.requests[0] assert el_request.method == 'POST', 'invalid bin request method: %s' % el_request.method el_task = Task.from_call_report_data(json.loads(el_request.body)) assert el_task.state == TASK_ERROR_STATE, 'invalid request.body:Task.state: %s' % el_task.state assert el_task.id in [ task.id for task in tasks ], 'invalid request.body:Task.id: %s' % el_task.id
def _test_02_repo_publish_finish(self): self.el.update(self.pulp, {'event_listener': ['repo.publish.finish']}) self.el.reload(self.pulp) repo_role = [repo for repo in ROLES.repos if repo.type == 'rpm'][0] repo, importer, [distributor] = YumRepo(id='publish_error_repo', importer=Importer.from_role(repo_role), distributors=[YumDistributor(distributor_type_id='invalid_distributor_id', relative_url='xyz')]).create(self.pulp) with deleting(self.pulp, repo, importer, distributor): response = repo.publish(self.pulp, 'invalid_distributor_id') self.assertPulpOK() with self.assertRaises(TaskFailure): # make sure the publish task failed Task.wait_for_report(self.pulp, response) task = Task.from_report(self.pulp, response) # assert the bin contains a request with a fained task in body self.bin.reload() assert self.bin.request_count == 1, 'invalid bin.request_count: %s' % self.bin.request_count el_request = self.bin.requests[0] assert el_request.method == 'POST', 'invalid bin request method: %s' % el_request.method el_task = Task.from_call_report_data(json.loads(el_request.body)) assert el_task.state == TASK_ERROR_STATE, 'invalid request.body:Task.state: %s' % el_task.state assert el_task.id in [task.id for task in tasks], 'invalid request.body:Task.id: %s' % el_task.id
def testcase_01_upload_and_download_using_dnf_rpm(self): # create yum-repo, -importer, -distributor repo, importer, [distributor] = YumRepo(id='test_22_rpm_repo_for_dnf', importer=YumImporter(feed=None), distributors=[YumDistributor(relative_url='xyz')]).create(self.pulp) with deleting(self.pulp, repo, importer, distributor): # create and perform an rpm url upload with deleting(self.pulp, upload_url_rpm(self.pulp, self.rpm_url)) as (upload,): # assign the upload to the repo response = upload.import_to(self.pulp, repo) self.assertPulpOK() Task.wait_for_report(self.pulp, response) # check the content is accessible response = repo.publish(self.pulp, distributor.id) self.assertPulpOK() Task.wait_for_report(self.pulp, response) # fetch the package through the repo pulp_rpm_url = distributor.content_url(self.pulp, url_basename(self.rpm_url)) pulp_repo = distributor.content_url(self.pulp) with closing(temp_url(pulp_rpm_url)) as tmpfile: assert url_basename(self.rpm_url).startswith(rpm_metadata(tmpfile)['unit_key']['name']) assert "bear" == download_package_with_dnf(self.pulp, pulp_repo, "bear")