]> gitweb.fperrin.net Git - djsite.git/blobdiff - quotes/conftest.py
Convert to using pytest
[djsite.git] / quotes / conftest.py
diff --git a/quotes/conftest.py b/quotes/conftest.py
new file mode 100644 (file)
index 0000000..9e88dc0
--- /dev/null
@@ -0,0 +1,31 @@
+import pytest
+
+import lxml.etree
+
+class ValidatingClient(object):
+    def __init__(self, client):
+        self.client = client
+    
+    def request(self, url, method, exp_status=200, params={}):
+        if method == 'get':
+            response = self.client.get('/quotes/' + url)
+        elif method == 'post':
+            response = self.client.post('/quotes/' + url, params)
+        else:
+            raise RuntimeError('Unknown method %s for %s' % (method, url))
+        assert response.status_code == exp_status
+        assert response.charset == 'utf-8'
+        document = response.content.decode(response.charset)
+        lxml.etree.fromstring(document)
+        assert '<script>' not in document
+        return document
+
+    def getPage(self, url):
+        return self.request(url, 'get')
+
+    def postPage(self, url, params):
+        return self.request(url, 'post', params=params)
+
+@pytest.fixture
+def c(client):
+    return ValidatingClient(client)