Skip to main content

A unit testing tool for Python's bottle library.

Project description

image

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

image

$ git clone https://github.com/keredson/boddle.git
$ cd boddle
$ python tests.py
............
----------------------------------------------------------------------
Ran 12 tests in 0.001s

OK

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

boddle-0.2.9.tar.gz (4.1 kB view details)

Uploaded Source

File details

Details for the file boddle-0.2.9.tar.gz.

File metadata

  • Download URL: boddle-0.2.9.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.8

File hashes

Hashes for boddle-0.2.9.tar.gz
Algorithm Hash digest
SHA256 b651650b2ab1adb64293bab746159df94ac86e51164459dc117c6c60c5726b5c
MD5 1de901b37d62cc3a76873a9a882efb8b
BLAKE2b-256 cf7379ed51ed60edbf53c3c2fb2e148fa78b7aa0a57041da0f2b7090f15aacb6

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