def test_basic(self): client = WebClient() session = client.session(Request(self.get_url('/'))) self.assertFalse(session.done()) response = yield From(session.fetch()) self.assertEqual(200, response.status_code) self.assertTrue(session.done())
def test_bad_redirect_ipv6(self): client = WebClient() session = client.session(Request(self.get_url('/bad_redirect_ipv6'))) while not session.done(): try: yield From(session.fetch()) except ProtocolError: return else: self.fail() # pragma: no cover
def test_redirect_repeat(self): client = WebClient() session = client.session(Request(self.get_url('/redirect?code=307'))) status_codes = [] while not session.done(): response = yield From(session.fetch()) if not status_codes: self.assertEqual(LoopType.redirect, session.loop_type()) status_codes.append(response.status_code) self.assertEqual([307, 200], status_codes) self.assertTrue(session.done()) self.assertEqual(LoopType.normal, session.loop_type())
def test_duration_timeout(self): client = WebClient() session = client.session(Request(self.get_url('/sleep_long'))) with self.assertRaises(DurationTimeout): yield From(session.fetch(duration_timeout=0.1))
def __init__(self, web_client=None, robots_txt_pool=None): self._web_client = web_client or WebClient() self._robots_txt_pool = robots_txt_pool or RobotsTxtPool()