cubicweb/pyramid/test/test_login.py
changeset 11631 faf279e33298
parent 11628 0f12ee84f30a
child 11816 6392f34fcdad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/pyramid/test/test_login.py	Mon Sep 26 14:52:12 2016 +0200
@@ -0,0 +1,51 @@
+from cubicweb.pyramid.test import PyramidCWTest
+
+
+class LoginTest(PyramidCWTest):
+    def test_login_form(self):
+        res = self.webapp.get('/login')
+        self.assertIn('__login', res.text)
+
+    def test_login_password_login(self):
+        res = self.webapp.post('/login', {
+            '__login': self.admlogin, '__password': self.admpassword})
+        self.assertEqual(res.status_int, 303)
+
+        res = self.webapp.get('/login')
+        self.assertEqual(res.status_int, 303)
+
+    def test_login_password_login_cookie_expires(self):
+        res = self.webapp.post('/login', {
+            '__login': self.admlogin, '__password': self.admpassword})
+        self.assertEqual(res.status_int, 303)
+
+        cookies = self.webapp.cookiejar._cookies['localhost.local']['/']
+        self.assertNotIn('pauth_tkt', cookies)
+        self.assertIn('auth_tkt', cookies)
+        self.assertIsNone(cookies['auth_tkt'].expires)
+
+        res = self.webapp.get('/logout')
+        self.assertEqual(res.status_int, 303)
+
+        self.assertNotIn('auth_tkt', cookies)
+        self.assertNotIn('pauth_tkt', cookies)
+
+        res = self.webapp.post('/login', {
+            '__login': self.admlogin, '__password': self.admpassword,
+            '__setauthcookie': 1})
+        self.assertEqual(res.status_int, 303)
+
+        cookies = self.webapp.cookiejar._cookies['localhost.local']['/']
+        self.assertNotIn('auth_tkt', cookies)
+        self.assertIn('pauth_tkt', cookies)
+        self.assertIsNotNone(cookies['pauth_tkt'].expires)
+
+    def test_login_bad_password(self):
+        res = self.webapp.post('/login', {
+            '__login': self.admlogin, '__password': 'empty'}, status=403)
+        self.assertIn('Authentication failed', res.text)
+
+
+if __name__ == '__main__':
+    from unittest import main
+    main()