[devtools/test] duplicate CubicWebServerTC tests for CubicWebWsgiTC
authorJulien Cristau <julien.cristau@logilab.fr>
Mon, 08 Feb 2016 16:32:36 +0100
changeset 11162 d60d181b2b17
parent 11161 dd1933f56f4e
child 11163 141e96f93c4d
[devtools/test] duplicate CubicWebServerTC tests for CubicWebWsgiTC
cubicweb/devtools/test/unittest_httptest.py
--- a/cubicweb/devtools/test/unittest_httptest.py	Mon Feb 08 16:32:07 2016 +0100
+++ b/cubicweb/devtools/test/unittest_httptest.py	Mon Feb 08 16:32:36 2016 +0100
@@ -20,7 +20,7 @@
 from six.moves import http_client
 
 from logilab.common.testlib import Tags
-from cubicweb.devtools.httptest import CubicWebServerTC
+from cubicweb.devtools.httptest import CubicWebServerTC, CubicWebWsgiTC
 
 
 class TwistedCWAnonTC(CubicWebServerTC):
@@ -63,6 +63,44 @@
         self.assertEqual(response.status, http_client.FORBIDDEN, response.body)
 
 
+class WsgiCWAnonTC(CubicWebWsgiTC):
+
+    def test_response(self):
+        try:
+            response = self.web_get()
+        except http_client.NotConnected as ex:
+            self.fail("Can't connection to test server: %s" % ex)
+
+    def test_response_anon(self):
+        response = self.web_get()
+        self.assertEqual(response.status, http_client.OK)
+
+    def test_base_url(self):
+        if self.config['base-url'] not in self.web_get().read().decode('ascii'):
+            self.fail('no mention of base url in retrieved page')
+
+
+class WsgiCWIdentTC(CubicWebWsgiTC):
+    test_db_id = 'httptest-cwident'
+    anonymous_allowed = False
+    tags = CubicWebServerTC.tags | Tags(('auth',))
+
+    def test_response_denied(self):
+        response = self.web_get()
+        self.assertEqual(response.status, http_client.FORBIDDEN)
+
+    def test_login(self):
+        response = self.web_get()
+        if response.status != http_client.FORBIDDEN:
+            self.skipTest('Already authenticated, "test_response_denied" must have failed')
+        # login
+        self.web_login(self.admlogin, self.admpassword)
+        response = self.web_get()
+        self.assertEqual(response.status, http_client.OK, response.body)
+        # logout
+        self.web_logout()
+        response = self.web_get()
+        self.assertEqual(response.status, http_client.FORBIDDEN, response.body)
 
 
 if __name__ == '__main__':