-
-
Save agusmakmun/c4acf33565f92dd942fd25a3ace5acdf to your computer and use it in GitHub Desktop.
How to create a unittest for a "View" Mixin (Django Testing)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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