I created a couple Middleware classes and want to test them against some real views now. Since my app is not including any views or url conf itself I was wondering if there is a way to temporary create views and url configuration just for testing (similar to a test database) within Django's test framework. In the end I would like to use the test client to check these temporary views against errors coming from the Middleware. I didn't find some solution for this in the docs.
I know I could create a test view within my app (in views.py) and point from the projects ROOT_URLCONF to it, but I don't want to force a user to do this when using my app and wanting to test my Middleware classes.
Any ideas?
Thanks.
Yes this is possible if you are using the django.test.TestCase
. Here are the docs on setting the url configuration for a specific test case: https://docs.djangoproject.com/en/1.8/topics/testing/tools/#urlconf-configuration
When I have done this in the past I typically break up my test suite like a sub-app (without models):
tests
__init__.py
urls.py
views.py
base.py
Then in the test case you would set:
class MiddlewareTestCase(TestCase):
urls = 'appname.tests.urls'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With