33
44import django .test .simple
55from django .test import TestCase
6- from ietf .urls import urlpatterns
76import ietf .settings
7+ import ietf .urls
88
99def run_tests (module_list , verbosity = 1 , extra_tests = []):
1010 module_list .append (ietf .tests )
1111 return django .test .simple .run_tests (module_list , verbosity , extra_tests )
1212
13+ def get_patterns (module ):
14+ all = []
15+ try :
16+ patterns = module .urlpatterns
17+ except AttributeError :
18+ patterns = []
19+ for item in patterns :
20+ try :
21+ subpatterns = get_patterns (item .urlconf_module )
22+ except :
23+ subpatterns = ["" ]
24+ for sub in subpatterns :
25+ if not sub :
26+ all .append (item .regex .pattern )
27+ elif sub .startswith ("^" ):
28+ all .append (item .regex .pattern + sub [1 :])
29+ else :
30+ all .append (item .regex .pattern + ".*" + sub )
31+ return all
32+
1333class UrlTestCase (TestCase ):
1434 def setUp (self ):
1535 from django .test .client import Client
@@ -38,7 +58,7 @@ def setUp(self):
3858
3959 def testCoverage (self ):
4060 covered = []
41- patterns = [ pattern . regex . pattern for pattern in urlpatterns ]
61+ patterns = get_patterns ( ietf . urls )
4262 for code , testurl , goodurl in self .testurls :
4363 for pattern in patterns :
4464 if re .match (pattern , testurl [1 :]):
@@ -48,7 +68,7 @@ def testCoverage(self):
4868 #self.assertEqual(set(patterns), set(covered), "Not all the
4969 #application URLs has test cases. The missing are: %s" % (list(set(patterns) - set(covered))))
5070 if not set (patterns ) == set (covered ):
51- print "Not all the application URLs has test cases. The missing are: %s" % (list (set (patterns ) - set (covered )))
71+ print "Not all the application URLs has test cases. The missing are: %s" % (" \n " . join ( list (set (patterns ) - set (covered ) )))
5272
5373 def testUrls (self ):
5474 for code , testurl , goodurl in self .testurls :
0 commit comments