]> gitweb.fperrin.net Git - djsite.git/commitdiff
Validate all pages in tests
authorFrédéric Perrin <fred@fperrin.net>
Tue, 18 Oct 2016 22:52:35 +0000 (23:52 +0100)
committerFrédéric Perrin <fred@fperrin.net>
Tue, 18 Oct 2016 22:52:35 +0000 (23:52 +0100)
quotes/tests.py

index 66ff00b946b8500a034412e020f80b85fce940ad..2d75e321334ae7b07f3894ae964b87a3992e6ef6 100644 (file)
@@ -3,6 +3,7 @@ from django.test import TestCase, Client
 # Create your tests here.
 from .models import Tag, Author, Work, Quote
 import re
+import lxml.etree
 
 class QuoteTest(TestCase):
     def setUp(self):
@@ -24,7 +25,12 @@ class ViewsTest(TestCase):
         response = c.get('/quotes/' + url)
         self.assertEqual(response.status_code, 200)
         self.assertEqual(response.charset, 'utf-8')
-        return response.content.decode(response.charset)
+        document = response.content.decode(response.charset)
+        try:
+            lxml.etree.fromstring(document)
+        except lxml.etree.XMLSyntaxError as e:
+            self.assertTrue(False, 'Errors in page at %s: %s' % (url, e))
+        return document
 
     def setUp(self):
         a1 = Author.objects.create(name="Author with notes",
@@ -64,7 +70,7 @@ class ViewsTest(TestCase):
         # <a href="{% url 'quotes:onequote' quote.id %}">Permalink</a>
         permalinkre = re.compile(r'([0-9]+).*Permalink')
 
-        for i in xrange(100):
+        for i in range(100):
             content = self.getPage('random')
             m = permalinkre.search(content)
             self.assertIsNotNone(m, content)