async def run(): replies.add(replies.GET, "http://example.com", body="", headers={"X-Test": "foo"}) resp = await asks.get("http://example.com") assert resp.headers["X-Test"] == "foo"
async def run(): replies.add(replies.GET, "http://example.com/?test=1", match_querystring=True) with pytest.raises(ConnectionError): await asks.get("http://example.com/foo/?test=2")
async def run(): replies.add(replies.GET, "http://example.com/one", body="one") replies.add(replies.GET, "http://example.com/two", body="two") resp = await asks.get("http://example.com/two") assert_response(resp, "two") resp = await asks.get("http://example.com/one") assert_response(resp, "one")
async def run(): url = "http://example.com?test=1&foo=bar" replies.add(replies.GET, url, match_querystring=True, body=b"test") resp = await asks.get("http://example.com?test=1&foo=bar") assert_response(resp, "test") resp = await asks.get("http://example.com?foo=bar&test=1") assert_response(resp, "test") resp = await asks.get("http://example.com/?foo=bar&test=1") assert_response(resp, "test")
async def run(): url = "http://example.com" exception = HTTPError("HTTP Error") replies.add(replies.GET, url, exception) with pytest.raises(HTTPError) as HE: await asks.get(url) assert str(HE.value) == "HTTP Error"
async def run(): replies.add(replies.GET, "http://example.com") with pytest.raises(ConnectionError): await asks.get("http://example.com/foo") assert len(replies.calls) == 1 assert replies.calls[0].request.url == "http://example.com/foo" assert type(replies.calls[0].response) is ConnectionError assert replies.calls[0].response.request
async def run(): replies.add(replies.GET, "http://example.com", body="test") replies.add(replies.GET, "http://example.com", body="rest") resp = await asks.get("http://example.com") assert_response(resp, "test") resp = await asks.get("http://example.com") assert_response(resp, "rest") # After all replies are used, last response should be repeated resp = await asks.get("http://example.com") assert_response(resp, "rest")
async def run(): replies.add_passthru(httpserver.url) replies.add(replies.GET, "{}/one".format(httpserver.url), body="one") replies.add(replies.GET, "http://example.com/two", body="two") resp = await asks.get("http://example.com/two") assert_response(resp, "two") resp = await asks.get("{}/one".format(httpserver.url)) assert_response(resp, "one") resp = await asks.get(httpserver.url) assert_response(resp, "OK")
async def run(): replies.add(replies.GET, "http://example.com", body=b"test", match_querystring=True) resp = await asks.get("http://example.com") assert_response(resp, "test") resp = await asks.get("http://example.com/") assert_response(resp, "test") with pytest.raises(ConnectionError): asks.get("http://example.com?query=foo")
async def run(): content_type = "application/json" url = "http://example.com/" replies.add(replies.GET, url, json={"message": "success"}) resp = await asks.get(url) assert_response(resp, '{"message": "success"}', content_type) url = "http://example.com/1/" replies.add(replies.GET, url, json=[]) resp = await asks.get(url) assert_response(resp, "[]", content_type)
async def run(): replies.add( replies.Response(method=replies.GET, url="http://example.com")) resp = await asks.get("http://example.com") assert_response(resp, "") assert len(replies.calls) == 1 assert replies.calls[0].request.url == "http://example.com/" resp = await asks.get("http://example.com?foo=bar") assert_response(resp, "") assert len(replies.calls) == 2 assert replies.calls[1].request.url == "http://example.com/?foo=bar"
async def run(): replies.add(replies.GET, "http://example.com", body=b"test") resp = await asks.get("http://example.com") assert_response(resp, "test") assert len(replies.calls) == 1 assert replies.calls[0].request.url == "http://example.com/" assert replies.calls[0].response.content == b"test" resp = await asks.get("http://example.com?foo=bar") assert_response(resp, "test") assert len(replies.calls) == 2 assert replies.calls[1].request.url == "http://example.com/?foo=bar" assert replies.calls[1].response.content == b"test"
def run(): url = re.compile(r"https?://(.*\.)?example.com") replies.add(replies.GET, url, body=b"test") resp = asks.get("http://example.com") assert_response(resp, "test") resp = asks.get("https://example.com") assert_response(resp, "test") resp = asks.get("https://uk.example.com") assert_response(resp, "test") with pytest.raises(ConnectionError): asks.get("https://uk.exaaample.com")
async def run(): replies.add(replies.GET, "http://example.com/zero") replies.add(replies.GET, "http://example.com/one") replies.add(replies.GET, "http://example.com/two") replies.add(replies.GET, re.compile(r"http://example\.com/three")) replies.add(replies.GET, re.compile(r"http://example\.com/four")) re.purge() replies.remove(replies.GET, "http://example.com/two") replies.remove(Reply(method=replies.GET, url="http://example.com/zero")) replies.remove(replies.GET, re.compile(r"http://example\.com/four")) with pytest.raises(ConnectionError): await asks.get("http://example.com/zero") asks.get("http://example.com/one") with pytest.raises(ConnectionError): await asks.get("http://example.com/two") asks.get("http://example.com/three") with pytest.raises(ConnectionError): await asks.get("http://example.com/four")
def run(): replies.add(replies.GET, "http://example.com/one", body="test1") if isinstance(original, BaseReply): replies.add(original) else: replies.add(replies.GET, original, body="test2") replies.add(replies.GET, "http://example.com/three", body="test3") replies.add(replies.GET, re.compile(r"http://example\.com/four"), body="test3") if isinstance(replacement, BaseReply): replies.replace(replacement) else: replies.replace(replies.GET, replacement, body="testtwo") resp = replies.get("http://example.com/two") assert_response(resp, "testtwo")
async def run(): """Note that `match_querystring` value shouldn't matter when passing a regular expression""" replies.add( replies.GET, re.compile(r"http://example\.com/foo/\?test=1"), match_querystring=True, ) with pytest.raises(ConnectionError): await asks.get("http://example.com/foo/?test=3") replies.add( replies.GET, re.compile(r"http://example\.com/foo/\?test=2"), match_querystring=False, ) with pytest.raises(ConnectionError): await asks.get("http://example.com/foo/?test=4")
async def run(): """Note that `match_querystring` value shouldn't matter when passing a regular expression""" replies.add( replies.GET, re.compile(r"http://example\.com/foo/\?test=1"), body="test1", match_querystring=True, ) resp = await asks.get("http://example.com/foo/?test=1") assert_response(resp, "test1") replies.add( replies.GET, re.compile(r"http://example\.com/foo/\?test=2"), body="test2", match_querystring=False, ) resp = await asks.get("http://example.com/foo/?test=2") assert_response(resp, "test2")
def run(): url = "http://example.com" replies.add(replies.GET, url, body=b"test") calls = [0] class DummyAdapter(asks.adapters.HTTPAdapter): def send(self, *a, **k): calls[0] += 1 return super(DummyAdapter, self).send(*a, **k) # Test that the adapter is actually used session = asks.Session() session.mount("http://", DummyAdapter()) resp = session.get(url, allow_redirects=False) assert calls[0] == 1 # Test that the response is still correctly emulated session = asks.Session() session.mount("http://", DummyAdapter()) resp = session.get(url) assert_response(resp, "test")
def run(): replies.add(replies.GET, original) with pytest.raises(ValueError): replies.replace(replies.GET, replacement)
async def run(): replies.add(method=replies.GET, url="http://example.com", body="OK") resp = await asks.get("http://example.com") assert_response(resp, "OK")
async def run(): url = "http://example.com/" replies.add(replies.GET, url, body="test", content_type=None) resp = await asks.get(url) assert_response(resp, "test", content_type=None)
async def run(): url = "http://example.com/" replies.add(replies.GET, url, body="test", status=418) resp = await asks.get(url) assert resp.status_code == 418 assert resp.reason is None
async def run(): replies.add(replies.GET, url, body="test") resp = await asks.get(url) assert_response(resp, "test")
async def run(): replies.add(replies.GET, url, body="test", match_querystring=True) resp = await asks.get(url) assert_response(resp, "test")