diff --git a/boddle.py b/boddle.py index c9d7d24..ceb7d28 100644 --- a/boddle.py +++ b/boddle.py @@ -21,9 +21,9 @@ class boddle(object): - def __init__(self, params={}, path=None, method=None, headers=None, json=None, url=None, body=None, query={}, **extras): + def __init__(self, params={}, path=None, method=None, headers=None, json=None, url=None, body=None, query={}, environ=None, **extras): - environ = {} + environ = environ or {} self.extras = extras self.extra_orig = {} self.orig_app_reader = bottle.BaseRequest.app diff --git a/tests.py b/tests.py index 463ac9d..a80fd7e 100644 --- a/tests.py +++ b/tests.py @@ -44,8 +44,30 @@ def testExtraStuff(self): self.assertEqual(bottle.request.extra, 'woot') with boddle(extra='woot2'): self.assertEqual(bottle.request.extra, 'woot2') + self.assertEqual(bottle.request.extra, 'woot') self.assertFalse(hasattr(bottle.request,'extra')) - + + def testExtraAsDict(self): + a = object() + extras = {'extra': 'woot'} + with boddle(**extras): + self.assertEqual(bottle.request.extra, 'woot') + extras = {'extra': 'woot2'} + with boddle(**extras): + self.assertEqual(bottle.request.extra, 'woot2') + self.assertEqual(bottle.request.extra, 'woot') + self.assertFalse(hasattr(bottle.request,'extra')) + + def testEnviron(self): + environ = {'bottle.request.forms': 'formdata'} + with boddle(environ=environ): + self.assertTrue(hasattr(bottle.request, 'forms')) + self.assertEqual(bottle.request.forms, 'formdata') + with boddle(environ={'bottle.request.forms': 'not formdata'}): + self.assertEqual(bottle.request.forms, 'not formdata') + self.assertTrue(hasattr(bottle.request, 'forms')) + self.assertEqual(bottle.request.forms, 'formdata') + def testJSON(self): with boddle(json={'name':'derek'}): self.assertEqual(bottle.request.json['name'], 'derek')