test-server


Nametest-server JSON
Version 0.0.47 PyPI version JSON
download
home_pageNone
SummaryServer for testing HTTP clients
upload_time2025-09-12 22:44:01
maintainerNone
docs_urlNone
authorNone
requires_python>=2.7
licenseNone
keywords test testing server http server
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Documentation for test_server package

[![Test Status](https://github.com/lorien/test_server/actions/workflows/test.yml/badge.svg)](https://github.com/lorien/test_server/actions/workflows/test.yml)
[![Code Quality](https://github.com/lorien/test_server/actions/workflows/check.yml/badge.svg)](https://github.com/lorien/test_server/actions/workflows/test.yml)
[![Type Check](https://github.com/lorien/test_server/actions/workflows/mypy.yml/badge.svg)](https://github.com/lorien/test_server/actions/workflows/mypy.yml)
[![Test Coverage Status](https://coveralls.io/repos/github/lorien/test_server/badge.svg)](https://coveralls.io/github/lorien/test_server)
[![Documentation Status](https://readthedocs.org/projects/test_server/badge/?version=latest)](http://user-agent.readthedocs.org)

Simple HTTP Server for testing HTTP clients.


## Installation

Run `pip install -U test_server`


## Usage Example

```python
from unittest import TestCase
import unittest
from urllib.request import urlopen

from test_server import TestServer, Response, HttpHeaderStorage


class UrllibTestCase(TestCase):
   @classmethod
   def setUpClass(cls):
       cls.server = TestServer()
       cls.server.start()

   @classmethod
   def tearDownClass(cls):
       cls.server.stop()

   def setUp(self):
       self.server.reset()

   def test_get(self):
       self.server.add_response(
           Response(
               data=b"hello",
               headers={"foo": "bar"},
           )
       )
       self.server.add_response(Response(data=b"zzz"))
       url = self.server.get_url()
       info = urlopen(url)
       self.assertEqual(b"hello", info.read())
       self.assertEqual("bar", info.headers["foo"])
       info = urlopen(url)
       self.assertEqual(b"zzz", info.read())
       self.assertTrue("bar" not in info.headers)


   unittest.main()
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "test-server",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=2.7",
    "maintainer_email": null,
    "keywords": "test, testing, server, http server",
    "author": null,
    "author_email": "Gregory Petukhov <lorien@lorien.name>",
    "download_url": "https://files.pythonhosted.org/packages/32/71/b099a867ca78033f3bb6877520c1c1d0aaedb5fdb7192a225ad0bc3967f4/test_server-0.0.47.tar.gz",
    "platform": null,
    "description": "# Documentation for test_server package\n\n[![Test Status](https://github.com/lorien/test_server/actions/workflows/test.yml/badge.svg)](https://github.com/lorien/test_server/actions/workflows/test.yml)\n[![Code Quality](https://github.com/lorien/test_server/actions/workflows/check.yml/badge.svg)](https://github.com/lorien/test_server/actions/workflows/test.yml)\n[![Type Check](https://github.com/lorien/test_server/actions/workflows/mypy.yml/badge.svg)](https://github.com/lorien/test_server/actions/workflows/mypy.yml)\n[![Test Coverage Status](https://coveralls.io/repos/github/lorien/test_server/badge.svg)](https://coveralls.io/github/lorien/test_server)\n[![Documentation Status](https://readthedocs.org/projects/test_server/badge/?version=latest)](http://user-agent.readthedocs.org)\n\nSimple HTTP Server for testing HTTP clients.\n\n\n## Installation\n\nRun `pip install -U test_server`\n\n\n## Usage Example\n\n```python\nfrom unittest import TestCase\nimport unittest\nfrom urllib.request import urlopen\n\nfrom test_server import TestServer, Response, HttpHeaderStorage\n\n\nclass UrllibTestCase(TestCase):\n   @classmethod\n   def setUpClass(cls):\n       cls.server = TestServer()\n       cls.server.start()\n\n   @classmethod\n   def tearDownClass(cls):\n       cls.server.stop()\n\n   def setUp(self):\n       self.server.reset()\n\n   def test_get(self):\n       self.server.add_response(\n           Response(\n               data=b\"hello\",\n               headers={\"foo\": \"bar\"},\n           )\n       )\n       self.server.add_response(Response(data=b\"zzz\"))\n       url = self.server.get_url()\n       info = urlopen(url)\n       self.assertEqual(b\"hello\", info.read())\n       self.assertEqual(\"bar\", info.headers[\"foo\"])\n       info = urlopen(url)\n       self.assertEqual(b\"zzz\", info.read())\n       self.assertTrue(\"bar\" not in info.headers)\n\n\n   unittest.main()\n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Server for testing HTTP clients",
    "version": "0.0.47",
    "project_urls": {
        "homepage": "http://github.com/lorien/test_server"
    },
    "split_keywords": [
        "test",
        " testing",
        " server",
        " http server"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "249e5d9b72588ccc8cbbf0ce6c202ae2e771e5e16f8b4b35e8298f6350bacc69",
                "md5": "66aeafbb6ccafb28f17d0b3a6aed3b84",
                "sha256": "b3f16569d67ffedc244063a5d3e17f1a99208bbe136d78dae92f169909640fbb"
            },
            "downloads": -1,
            "filename": "test_server-0.0.47-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "66aeafbb6ccafb28f17d0b3a6aed3b84",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=2.7",
            "size": 12638,
            "upload_time": "2025-09-12T22:43:59",
            "upload_time_iso_8601": "2025-09-12T22:43:59.905645Z",
            "url": "https://files.pythonhosted.org/packages/24/9e/5d9b72588ccc8cbbf0ce6c202ae2e771e5e16f8b4b35e8298f6350bacc69/test_server-0.0.47-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3271b099a867ca78033f3bb6877520c1c1d0aaedb5fdb7192a225ad0bc3967f4",
                "md5": "e29cb9fe3645ef719c9c61a58ed5a4ec",
                "sha256": "75c22712fa0151a26692940890c449ddf8edade360289cebc7244ab101542d7e"
            },
            "downloads": -1,
            "filename": "test_server-0.0.47.tar.gz",
            "has_sig": false,
            "md5_digest": "e29cb9fe3645ef719c9c61a58ed5a4ec",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=2.7",
            "size": 16969,
            "upload_time": "2025-09-12T22:44:01",
            "upload_time_iso_8601": "2025-09-12T22:44:01.282788Z",
            "url": "https://files.pythonhosted.org/packages/32/71/b099a867ca78033f3bb6877520c1c1d0aaedb5fdb7192a225ad0bc3967f4/test_server-0.0.47.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-12 22:44:01",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "lorien",
    "github_project": "test_server",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "test-server"
}
        
Elapsed time: 3.28212s