跳转到主要内容

一个Python库,提供了一个可用于测试需要与HTTP服务器交互的代码的HTTP服务器模拟。

项目描述

httpservermock

httpservermock 提供了一个HTTP服务器模拟,可用于测试需要与HTTP服务器交互的代码。

pip install httpservermock
# or
poetry add --dev httpservermock

示例用法

from urllib.error import HTTPError
from urllib.request import urlopen

import pytest

from httpservermock import MethodName, MockHTTPResponse, ServedBaseHTTPServerMock


def test_example() -> None:
    with ServedBaseHTTPServerMock() as httpmock:
        httpmock.responses[MethodName.GET].append(
            MockHTTPResponse(404, "Not Found", b"gone away", {})
        )
        httpmock.responses[MethodName.GET].append(
            MockHTTPResponse(200, "OK", b"here it is", {})
        )

        # send a request to get the first response
        with pytest.raises(HTTPError) as raised:
            urlopen(f"{httpmock.url}/bad/path")
        assert raised.value.code == 404

        # get and validate request that the mock received
        req = httpmock.requests[MethodName.GET].pop(0)
        assert req.path == "/bad/path"

        # send a request to get the second response
        resp = urlopen(f"{httpmock.url}/")
        assert resp.status == 200
        assert resp.read() == b"here it is"

        httpmock.responses[MethodName.GET].append(
            MockHTTPResponse(404, "Not Found", b"gone away", {})
        )
        httpmock.responses[MethodName.GET].append(
            MockHTTPResponse(200, "OK", b"here it is", {})
        )

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

httpservermock-0.1.0.tar.gz (7.7 kB 查看哈希)

上传时间:

构建分布

httpservermock-0.1.0-py3-none-any.whl (7.7 kB 查看哈希)

上传时间: Python 3