Skip to content

Instantly share code, notes, and snippets.

@agusmakmun
Forked from dnmellen/test_views.py
Created May 8, 2020 06:57
Show Gist options
  • Save agusmakmun/c4acf33565f92dd942fd25a3ace5acdf to your computer and use it in GitHub Desktop.
Save agusmakmun/c4acf33565f92dd942fd25a3ace5acdf to your computer and use it in GitHub Desktop.
How to create a unittest for a "View" Mixin (Django Testing)
from django.test import TestCase, RequestFactory
from django.views.generic import TemplateView
from ..lib.views import YourMixin
class YourMixinTest(TestCase):
'''
Tests context-data in a Django Mixin like a boss
'''
class DummyView(YourMixin, TemplateView):
'''
To test get_context_data we need a TemplateView child
'''
template_name = 'any_template.html' # TemplateView requires this attribute
def setUp(self):
super(YourMixinTest, self).setUp()
self.request = RequestFactory().get('/fake-path')
# Setup request and view.
self.view = self.DummyView()
def test_context_data_no_args(self):
# Prepare initial params
kwargs = {}
# Launch Mixin's get_context_data
context = self.view.get_context_data(**kwargs)
# Your checkings here
self.assertEqual(context['name'], 'foo')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment