def test_on_succeeded(self): request = Request('T1', {'A': 1}, 'http://test', '/tmp/test') request.data = Mock() content_listener = Mock() # test listener = ContainerListener(content_listener) listener.on_succeeded(request) # validation calls = content_listener.download_succeeded.mock_calls self.assertEqual(len(calls), 1) report = calls[0][1][0] self.assertEqual(report.url, request.url) self.assertEqual(report.destination, request.destination) self.assertEqual(report.data, request.data)
def test_download_succeeded(self): request = Request("T1", {"A": 1}, "http://test", "/tmp/test") request.data = Mock() content_listener = Mock() # test listener = ContainerListener(content_listener) listener.download_succeeded(request) # validation calls = content_listener.download_succeeded.mock_calls self.assertEqual(len(calls), 1) report = calls[0][1][0] self.assertEqual(report.url, request.url) self.assertEqual(report.destination, request.destination) self.assertEqual(report.data, request.data)
def get_requests(self): """ Get requests for the units requested to be downloaded. :return: An iterable of: Request :rtype: iterable """ for unit in self.units: base_url = unit.base_url or self.base_url url = self.url_modify(base_url, path_append=unit.download_path) destination = os.path.join(self.dst_dir, unit.filename) request = Request(type_id=unit.type_id, unit_key=unit.unit_key, url=url, destination=destination) request.data = unit yield request
def test_download_failed(self): request = Request('T1', {'A': 1}, 'http://test', '/tmp/test') request.data = Mock() request.errors = [1, 2, 3] content_listener = Mock() # test listener = ContainerListener(content_listener) listener.download_failed(request) # validation calls = content_listener.download_failed.mock_calls self.assertEqual(len(calls), 1) report = calls[0][1][0] self.assertEqual(report.url, request.url) self.assertEqual(report.destination, request.destination) self.assertEqual(report.data, request.data) self.assertEqual(report.error_report['errors'], request.errors)
def get_requests(self): """ Get requests for the units requested to be downloaded. :return: An iterable of: Request :rtype: iterable """ for unit in self.units: base_url = unit.base_url or self.base_url url = self.url_modify(base_url, path_append=unit.filename) destination = os.path.join(self.dst_dir, unit.filename) request = Request( type_id=unit.type_id, unit_key=unit.unit_key, url=url, destination=destination) request.data = unit yield request
def test_on_failed(self): request = Request("T1", {"A": 1}, "http://test", "/tmp/test") request.data = Mock() request.errors = [1, 2, 3] content_listener = Mock() # test listener = ContainerListener(content_listener) listener.on_failed(request) # validation calls = content_listener.download_failed.mock_calls self.assertEqual(len(calls), 1) report = calls[0][1][0] self.assertEqual(report.url, request.url) self.assertEqual(report.destination, request.destination) self.assertEqual(report.data, request.data) self.assertEqual(report.error_report["errors"], request.errors)
def get_requests(self): """ Get requests for the units requested to be downloaded. :return: An iterable of: Request :rtype: iterable """ for unit in self.units: if unit.metadata.get('base_url'): url = urljoin(unit.metadata.get('base_url'), unit.download_path) else: url = urljoin(self.base_url, unit.download_path) file_name = os.path.basename(unit.relative_path) destination = os.path.join(self.dst_dir, file_name) request = Request( type_id=unit.TYPE, unit_key=unit.unit_key, url=url, destination=destination) request.data = unit yield request
def create_request(url, destination, unit, unit_ref): """ Create a content container download request that is compatible with the listener. The destination directory is created as needed. :param url: The download URL. :type url: str :param destination: The absolute path to where the file is to be downloaded. :type destination: str :param unit: A published content unit. :type unit: dict :param unit_ref: A reference to the unit association. :type unit_ref: pulp_node.manifest.UnitRef. :return: A download request. :rtype: Request """ data = {STORAGE_PATH: unit[constants.STORAGE_PATH], UNIT_REF: unit_ref} dir_path = os.path.dirname(destination) pathlib.mkdir(dir_path) request = Request(unit[constants.TYPE_ID], unit[constants.UNIT_KEY], url, destination) request.data = data return request
def create_request(url, destination, unit, unit_ref): """ Create a content container download request that is compatible with the listener. The destination directory is created as needed. :param url: The download URL. :type url: str :param destination: The absolute path to where the file is to be downloaded. :type destination: str :param unit: A published content unit. :type unit: dict :param unit_ref: A reference to the unit association. :type unit_ref: pulp_node.manifest.UnitRef. :return: A download request. :rtype: Request """ data = { STORAGE_PATH: unit[constants.STORAGE_PATH], UNIT_REF: unit_ref } dir_path = os.path.dirname(destination) pathlib.mkdir(dir_path) request = Request(unit[constants.TYPE_ID], unit[constants.UNIT_KEY], url, destination) request.data = data return request