python - Mocking render to response with Pyramid -
i have decorator looks so:
def validate_something(func): def validate_s(request): if request.property: render_to_response('template.jinja', 'error' homecoming func(request) homecoming validate_something
i'm trying test so. load local wsgi stack app.
from webtest import testapp def setup(self): self.app = testapp(target_app()) self.config = testing.setup(request=testing.dummyrequest) def test_something(self): def test_func(request): homecoming 1 request = testing.dummyrequest() resp = validate_something(test_func(request)) result = resp(request)
the error i'm getting (being generated @ innermost render_to_response):
valueerror: no such renderer mill .jinja
i understand need mock render_to_response, i'm @ bit of loss how that. if has suggestions, appreciate it.
mock library awesome:
mock provides core mock class removing need create host of stubs throughout test suite. after performing action, can create assertions methods / attributes used , arguments called with. can specify homecoming values , set needed attributes in normal way.
additionally, mock provides patch() decorator handles patching module , class level attributes within scope of test
youc code this:
def test_something(self): test_func = mock.magicmock(return_value=1) # replaced stub function mock request = testing.dummyrequest() # patching pyramid method mock mock.patch('pyramid.renderers.render_to_response' r2r: resp = validate_something(test_func(request)) result = resp(request) assert r2r.assert_called_with('template.jinja', 'error')
python mocking pyramid python-unittest python-decorators
No comments:
Post a Comment