import json from django.http import HttpResponse from django.views.generic import View from webargs import Arg from webargs.djangoparser import DjangoParser parser = DjangoParser() hello_args = {'name': Arg(str, default='World')} hello_multi = {'name': Arg(multiple=True)} def render_json_response(data): return HttpResponse(json.dumps(data), content_type='application/json') class SimpleCBVWithParam(View): @parser.use_args(hello_args) def get(self, args, request, pid): return render_json_response(args) class SimpleCBV(View): def get(self, request): args = parser.parse(hello_args, self.request) return render_json_response(args) def post(self, request): args = parser.parse(hello_args, self.request) return render_json_response(args)
def test_parse_headers_raises_not_implemented_error(mockrequest): field = fields.Field() p = DjangoParser() with pytest.raises(NotImplementedError) as excinfo: p.parse_arg('foo', field, req=mockrequest, locations=('headers', )) assert 'Header parsing not supported by DjangoParser' in str(excinfo)
def test_parse_headers_raises_not_implemented_error(mockrequest): arg = Arg() p = DjangoParser() with pytest.raises(NotImplementedError) as excinfo: p.parse_arg('foo', arg, req=mockrequest, targets=('headers', )) assert 'Header parsing not supported by DjangoParser' in str(excinfo)
class DjangoArgumentsMixin(ArgumentsMixin): ARGUMENTS_PARSER = DjangoParser()
def test_parse_headers_raises_not_implemented_error(mockrequest): arg = Arg() p = DjangoParser() with pytest.raises(NotImplementedError) as excinfo: p.parse_arg('foo', arg, req=mockrequest, targets=('headers',)) assert 'Header parsing not supported by DjangoParser' in str(excinfo)