File: test_middleware.py

package info (click to toggle)
django-graphiql-debug-toolbar 0.2.0-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 248 kB
  • sloc: python: 155; javascript: 30; sh: 15; makefile: 11
file content (53 lines) | stat: -rw-r--r-- 1,965 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import json
from unittest.mock import Mock, patch

from django.http import HttpResponse, JsonResponse
from django.test import RequestFactory, testcases

from graphene_django.views import GraphQLView

from graphiql_debug_toolbar.middleware import DebugToolbarMiddleware


class DebugToolbarMiddlewareTests(testcases.TestCase):
    def setUp(self):
        self.request_factory = RequestFactory()
        self.view_func = GraphQLView.as_view(graphiql=True)
        self.middleware = DebugToolbarMiddleware

    def test_graphiql(self):
        request = self.request_factory.get("/")
        http_response = HttpResponse()
        http_response["Content-Length"] = 0
        get_response_mock = Mock(return_value=http_response)

        middleware = self.middleware(get_response_mock)
        middleware.process_view(request, self.view_func)
        response = middleware(request)

        self.assertGreater(int(response["Content-Length"]), 0)
        self.assertIn(b"parse.js", response.content)

#    @patch("debug_toolbar.middleware.get_show_toolbar", return_value=lambda r: True)
#    def test_query(self, get_show_toolbar_mock):
#        request = self.request_factory.post("/")
#        get_response_mock = Mock(return_value=JsonResponse({"data": None}))
#
#        middleware = self.middleware(get_response_mock)
#        middleware.process_view(request, self.view_func, (), {})
#
#        response = middleware(request)
#        payload = json.loads(response.content.decode("utf-8"))
#
#        get_show_toolbar_mock.assert_called_once_with()
#        self.assertIn("data", payload)
#        self.assertIn("storeId", payload["debugToolbar"])

    def test_process_unknown_view(self):
        request = self.request_factory.post("/")
        get_response_mock = Mock(return_value=HttpResponse())

        middleware = self.middleware(get_response_mock)
        middleware.process_view(request, None)

        self.assertFalse(hasattr("request", "_graphiql"))