MCPcopy Index your code
hub / github.com/encode/django-rest-framework / BrowsableAPIRendererTests

Class BrowsableAPIRendererTests

tests/test_renderers.py:719–821  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

717
718
719class BrowsableAPIRendererTests(URLPatternsTestCase):
720 class ExampleViewSet(ViewSet):
721 def list(self, request):
722 return Response()
723
724 @action(detail=False, name="Extra list action")
725 def list_action(self, request):
726 raise NotImplementedError
727
728 class AuthExampleViewSet(ExampleViewSet):
729 permission_classes = [permissions.IsAuthenticated]
730
731 class SimpleSerializer(serializers.Serializer):
732 name = serializers.CharField()
733
734 router = SimpleRouter()
735 router.register('examples', ExampleViewSet, basename='example')
736 router.register('auth-examples', AuthExampleViewSet, basename='auth-example')
737 urlpatterns = [path('api/', include(router.urls))]
738
739 def setUp(self):
740 self.renderer = BrowsableAPIRenderer()
741 self.renderer.accepted_media_type = ''
742 self.renderer.renderer_context = {}
743
744 def test_render_form_for_serializer(self):
745 with self.subTest('Serializer'):
746 serializer = BrowsableAPIRendererTests.SimpleSerializer(data={'name': 'Name'})
747 form = self.renderer.render_form_for_serializer(serializer)
748 assert isinstance(form, str), 'Must return form for serializer'
749
750 with self.subTest('ListSerializer'):
751 list_serializer = BrowsableAPIRendererTests.SimpleSerializer(data=[{'name': 'Name'}], many=True)
752 form = self.renderer.render_form_for_serializer(list_serializer)
753 assert form is None, 'Must not return form for list serializer'
754
755 def test_get_raw_data_form(self):
756 with self.subTest('Serializer'):
757 class DummyGenericViewsetLike(APIView):
758 def get_serializer(self, **kwargs):
759 return BrowsableAPIRendererTests.SimpleSerializer(**kwargs)
760
761 def get(self, request):
762 response = Response()
763 response.view = self
764 return response
765
766 post = get
767
768 view = DummyGenericViewsetLike.as_view()
769 _request = APIRequestFactory().get('/')
770 request = Request(_request)
771 response = view(_request)
772 view = response.view
773
774 raw_data_form = self.renderer.get_raw_data_form({'name': 'Name'}, view, 'POST', request)
775 assert raw_data_form['_content'].initial == '{\n "name": ""\n}'
776

Callers

nothing calls this directly

Calls 2

SimpleRouterClass · 0.90
registerMethod · 0.80

Tested by

no test coverage detected