From eb1414e24a10e2bf3f98a763b45215a3cc88b736 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 15 Aug 2017 00:19:21 -0400 Subject: [PATCH] Update GenericViewTestCase to work with normal views's and template widget views. Signed-off-by: Roberto Rosario --- mayan/apps/common/tests/test_views.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/mayan/apps/common/tests/test_views.py b/mayan/apps/common/tests/test_views.py index c0320ca575..88fccbac64 100644 --- a/mayan/apps/common/tests/test_views.py +++ b/mayan/apps/common/tests/test_views.py @@ -5,6 +5,7 @@ from django.contrib.auth import get_user_model from django.contrib.auth.models import Group from django.http import HttpResponse from django.template import Context, Template +from django.test.utils import ContextList from django.urls import clear_url_caches, reverse from acls.models import AccessControlList @@ -62,9 +63,16 @@ class GenericViewTestCase(BaseTestCase): def get_test_view(self): response = self.get(TEST_VIEW_NAME) - response.context.update({'request': response.wsgi_request}) - context = Context(response.context) - return context + if isinstance(response.context, ContextList): + # template widget rendering causes test client response to be + # ContextList rather than RequestContext. Typecast to dictionary + # before updating. + result = dict(response.context).copy() + result.update({'request': response.wsgi_request}) + return Context(result) + else: + response.context.update({'request': response.wsgi_request}) + return Context(response.context) def get(self, viewname, *args, **kwargs): data = kwargs.pop('data', {})