def test_get(self): doc = get_html_doc('search_engines', 'google.com') req = download.Request(doc.url.url) with requests_mock.mock() as m: m.get(req.url, content=doc.body) resp = download.get(req) self.assertIsInstance(resp, download.HtmlDocument) self.assertEqual(resp.body, doc.body) with requests_mock.mock() as m: resp = download.get(req) self.assertIsInstance(resp, download.DownloadError)
def search(query_string=None, cmd=None, search_engine='google', max_download=5): engine = get_engine(search_engine) search_req = engine.get_search_request(query_string) search_result = get(search_req) if isinstance(search_result, DownloadError): raise SearchError('Failed search on {} ({})'.format( search_engine, search_result.status_code)) urls = engine.get_hits(search_result) docs = iter_get([Request(u.url) for u in urls[:max_download]]) return extract_commands(docs, base_commands=cmd)