A unit testing tool for Python's bottle library.
Project description
image
Boddle
A unit testing tool for Python’s bottle library. We wrote this for our own testing purposes at https://www.hvst.com. Thanks brenguyen711 for the great name!
Install
sudo pip install boddle
Usage
Assuming you have a bottle route like this:
@bottle.get('/woot') def woot(): return bottle.request.params['name']
You can unit test it like:
import unittest from boddle import boddle class TestIt(unittest.TestCase): def testWoot(self): with boddle(params={'name':'derek'}): self.assertEqual(woot(), 'derek')
See `example.py <example.py>`__.
Options
The Bottle-specific params that are supported are:
Argument | Notes |
---|---|
params | Populates request.params. Takes a dict or list of pairs. Useful for both POST and GET params. |
path | The path component of the url. Populates request.path, which always has a preceeding /. |
method | POST, GET, etc. Bottle will uppercase the value. |
headers | Any HTTP headers. Takes a dict. |
json | Takes anything that can be consumed by json.dumps(). Also sets the content type of the request. |
url | The full URL, protocol, domain, port, path, etc. Will be parsed until its urlparts before populating request.url. |
body | The raw body of the request. Takes either a str or a file-like object. strs will be converted into file-like objects. Populated request.body. |
query | Populates request.query. Takes a dict. |
All other keyword arguments will be assigned to the request object. For instance, we often do:
with boddle(current_user=someone): # code that accesses bottle.request.current_user
You can also nest boddle calls. For instance:
with boddle(path='/woot'): with boddle(params={'name':'derek'}): # both path and params are set here # only path is set here
ALL CHANGES TO ``bottle.request`` ARE REVERTED WHEN THE WITH BLOCK ENDS.
Testing
image
$ git clone https://github.com/keredson/boddle.git $ cd boddle $ python tests.py ............ ---------------------------------------------------------------------- Ran 12 tests in 0.001s OK
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
boddle-0.2.9.tar.gz
(4.1 kB
view hashes)