Ejemplo n.º 1
0
 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"
Ejemplo n.º 2
0
    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")
Ejemplo n.º 3
0
    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")
Ejemplo n.º 4
0
 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")
Ejemplo n.º 5
0
    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"
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
0
    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")
Ejemplo n.º 8
0
    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")
Ejemplo n.º 9
0
 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")
Ejemplo n.º 10
0
    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)
Ejemplo n.º 11
0
    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"
Ejemplo n.º 12
0
    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"
Ejemplo n.º 13
0
    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")
Ejemplo n.º 14
0
    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")
Ejemplo n.º 15
0
    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")
Ejemplo n.º 16
0
    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")
Ejemplo n.º 17
0
    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")
Ejemplo n.º 18
0
    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")
Ejemplo n.º 19
0
 def run():
     replies.add(replies.GET, original)
     with pytest.raises(ValueError):
         replies.replace(replies.GET, replacement)
Ejemplo n.º 20
0
 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")
Ejemplo n.º 21
0
 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)
Ejemplo n.º 22
0
 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
Ejemplo n.º 23
0
    async def run():
        replies.add(replies.GET, url, body="test")

        resp = await asks.get(url)

        assert_response(resp, "test")
Ejemplo n.º 24
0
    async def run():
        replies.add(replies.GET, url, body="test", match_querystring=True)

        resp = await asks.get(url)

        assert_response(resp, "test")