import logging from django.core.urlresolvers import reverse, NoReverseMatch from django.test import TestCase, Client from boards import urls logger = logging.getLogger(__name__) HTTP_CODE_OK = 200 class ViewTest(TestCase): def test_all_views(self): """ Try opening all views defined in ulrs.py that don't need additional parameters """ client = Client() for url in urls.urlpatterns: try: view_name = url.name logger.debug('Testing view %s' % view_name) try: response = client.get(reverse(view_name)) self.assertEqual(HTTP_CODE_OK, response.status_code, '%s view not opened' % view_name) except NoReverseMatch: # This view just needs additional arguments pass except Exception as e: self.fail('Got exception %s at %s view' % (e, view_name)) except AttributeError: # This is normal, some views do not have names pass