File: test_native.py

package info (click to toggle)
cherrypy3 18.10.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,248 kB
  • sloc: python: 17,559; makefile: 29; sh: 8
file content (38 lines) | stat: -rw-r--r-- 971 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
"""Test the native server."""

import pytest
from requests_toolbelt import sessions

import cherrypy._cpnative_server


pytestmark = pytest.mark.skipif(
    'sys.platform == "win32"',
    reason='tests fail on Windows',
)


@pytest.fixture
def cp_native_server(request):
    """A native server."""
    class Root(object):
        @cherrypy.expose
        def index(self):
            return 'Hello World!'

    cls = cherrypy._cpnative_server.CPHTTPServer
    cherrypy.server.httpserver = cls(cherrypy.server)

    cherrypy.tree.mount(Root(), '/')
    cherrypy.engine.start()
    request.addfinalizer(cherrypy.engine.stop)
    url = 'http://localhost:{cherrypy.server.socket_port}'.format(**globals())
    return sessions.BaseUrlSession(url)


def test_basic_request(cp_native_server):
    """A request to a native server should succeed."""
    resp = cp_native_server.get('/')
    assert resp.ok
    assert resp.status_code == 200
    assert resp.text == 'Hello World!'