This is a simple testlayer that can be used to test tornado web applications using the zope testrunner.
First lets create a simple sample application:
>>> from tornado.web import Application, RequestHandler
>>> class HelloWorldHandler(RequestHandler):
... def get(self):
... return self.write('Hello World')
Importing the layer:
>>> from tornado_testing.layer import TornadoLayer
Create the layer using the sample application created earlier:
>>> my_app = Application(handlers=[(r'/', HelloWorldHandler)]) >>> tornado_layer = TornadoLayer(my_app, port=None) >>> type(tornado_layer.port) <class 'int'>
Set up the layer:
>>> tornado_layer.setUp()
Now the layer should be running and therefore tornado will serve requests:
>>> from urllib.request import urlopen
>>> url = 'http://localhost:{}/'.format(tornado_layer.port)
>>> f = urlopen(url)
>>> f.read()
b'Hello World'
>>> f.close()
>>> tornado_layer.tearDown()
Patches
The testlayer supports patches which can be used to mock out any modules that are used inside a tornado application.
Here is an example of a tornado application that uses the os modules listdir method:
>>> import json
>>> class ListDirHandler(RequestHandler):
... def get(self):
... import os
... return self.write(json.dumps(os.listdir('.')))
>>> my_app = Application(handlers=[(r'/', ListDirHandler)], debug=True)
Now define the fake listdir method:
>>> def fake_listdir(path): ... return ['fake_file']
Create the monkey patch:
>>> from unittest.mock import patch
>>> listdir_patch = patch('os.listdir', fake_listdir)
Create the test layer using the patch:
>>> tornado_layer = TornadoLayer(my_app, port=None, patches=[listdir_patch])
>>> tornado_layer.setUp()
>>> url = 'http://localhost:{}/'.format(tornado_layer.port)
>>> f = urlopen(url)
>>> f.read()
b'["fake_file"]'
>>> f.close()
>>> tornado_layer.tearDown()
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file tornado_testing-0.2.1.tar.gz.
File metadata
- Download URL: tornado_testing-0.2.1.tar.gz
- Upload date:
- Size: 2.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd7c76f0b797ec1ca7d5a95e90071465892938975688d14d731754d466456cbe
|
|
| MD5 |
0c7ec75ebf92dd157890ed5b92a61ae8
|
|
| BLAKE2b-256 |
71b3350ee4b741574cae80d3ef2eed79a9b44e04ce9b44a4706c47a1457bee42
|