def test_build_session(self): kwargs = {'basic_auth_username': '******', 'basic_auth_password': '******', 'ssl_validation': False, 'ssl_client_cert_path': os.path.join(_find_data_directory(), 'pki/bogus/cert.pem'), 'ssl_client_key_path': os.path.join(_find_data_directory(), 'pki/bogus/key.pem'), 'proxy_url': 'https://invalid-proxy.com', 'proxy_port': 1234, 'proxy_username': '******', 'proxy_password': '******'} proxy_host = urllib.splithost(urllib.splittype(kwargs['proxy_url'])[1])[0] cfg = config.DownloaderConfig(**kwargs) session = revent.build_session(cfg) self.assertEqual(session.stream, True) self.assertEqual(session.auth, (kwargs['basic_auth_username'], kwargs['basic_auth_password'])) self.assertEqual(session.cert, (kwargs['ssl_client_cert_path'], kwargs['ssl_client_key_path'])) self.assertEqual(session.proxies, {'http': 'https://%s:%s@%s:%d' % (kwargs['proxy_username'], kwargs['proxy_password'], proxy_host, kwargs['proxy_port']), 'https': 'http://%s:%s@%s:%d' % (kwargs['proxy_username'], kwargs['proxy_password'], proxy_host, kwargs['proxy_port'])})
def test_wrong_content_encoding(self): URL = 'http://pulpproject.org/primary.xml.gz' req = DownloadRequest(URL, StringIO()) response = Response() response.status_code = httplib.OK response.raw = StringIO('abc') session = revent.build_session(self.config) session.get = mock.MagicMock(return_value=response, spec_set=session.get) report = self.downloader._fetch(req, session) self.assertEqual(report.state, DOWNLOAD_SUCCEEDED) self.assertEqual(report.bytes_downloaded, 3) session.get.assert_called_once_with(URL, headers={'accept-encoding':''})
def test_normal_content_encoding(self): URL = 'http://pulpproject.org/primary.xml' req = DownloadRequest(URL, StringIO()) response = Response() response.status_code = httplib.OK response.iter_content = mock.MagicMock(return_value=['abc'], spec_set=response.iter_content) session = revent.build_session(self.config) session.get = mock.MagicMock(return_value=response, spec_set=session.get) report = self.downloader._fetch(req, session) self.assertEqual(report.state, DOWNLOAD_SUCCEEDED) self.assertEqual(report.bytes_downloaded, 3) # passing "None" for headers lets the requests library add whatever # headers it thinks are appropriate. session.get.assert_called_once_with(URL, headers=None)