Skip to main content

Standalone WSGI server for running tests purpose.

Project description

Build Status Coverage Status

You can use wsgitest to start a HTTP server for a WSGI application and control the process:

@Request.application
def application(request):
    return Response('Hello World!')

class AppServerTestCase(TestCase):
    def test_hello_app(self):
        server = WSGITestServer.create(application)
        try:
            response = requests.get(server.application_url)
            self.assertEqual(response.status_code, 200)
            self.assertEqual(response.content, b"Hello World!")
        finally:
            server.terminate()

    def test_hello_app_reference(self):
        server = WSGITestServer.create("tests.test_server.application")
        try:
            response = requests.get(server.application_url)
            self.assertEqual(response.status_code, 200)
            self.assertEqual(response.content, b"Hello World!")
        finally:
            server.terminate()

The method WSGITestServer.create() initialize a multiprocessing.Process and wait for the server startup.

You can use server as a context manager to avoid that tests get stucked when you forget to “terminate” server:

@Request.application
def application(request):
    return Response('Hello World!')

class AppServerTestCase(TestCase):
    def test_hello_app(self):
        with WSGITestServer(application) as server:
            response = requests.get(server.application_url)
            self.assertEqual(response.status_code, 200)
            self.assertEqual(response.content, b"Hello World!")

You can also start server with an specific host/ip or TCP port:

@Request.application
def application(request):
    return Response('Hello World!')

class AppServerTestCase(TestCase):
    def test_hello_app(self):
        with WSGITestServer(application, "0.0.0.0", 5000) as server:
            response = requests.get(server.application_url)
            self.assertEqual(response.status_code, 200)
            self.assertEqual(response.content, b"Hello World!")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wsgitest-0.2.0.tar.gz (4.2 kB view details)

Uploaded Source

File details

Details for the file wsgitest-0.2.0.tar.gz.

File metadata

  • Download URL: wsgitest-0.2.0.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for wsgitest-0.2.0.tar.gz
Algorithm Hash digest
SHA256 06137e227d944837538d2d9a919c29fa31b9f4501337ca81827dd1a1b344e52c
MD5 d296d148926e038c4e70b6ce886928da
BLAKE2b-256 b09833d8053aab30d308d57e7c484cf6d4ed5a5ec3d15a73389f6c0e7c4ee25e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page