Drop python2 support
This mostly consists in removing the dependency on "six" and updating
the code to use only Python3 idioms.
Notice that we previously used TemporaryDirectory from
cubicweb.devtools.testlib for compatibility with Python2. We now
directly import it from tempfile.
from os.path import join
from shutil import rmtree
from cubicweb.pyramid.test import PyramidCWTest
class LoginTestLangUrlPrefix(PyramidCWTest):
@classmethod
def setUpClass(cls):
super(LoginTestLangUrlPrefix, cls).setUpClass()
cls.config.global_set_option('language-mode', 'url-prefix')
def test_login_password_login_lang_prefix(self):
res = self.webapp.post('/fr/login', {
'__login': self.admlogin, '__password': self.admpassword})
self.assertEqual(res.status_int, 303)
res = self.webapp.get('/fr/login')
self.assertEqual(res.status_int, 303)
class LoginTest(PyramidCWTest):
settings = {'cubicweb.bwcompat': True}
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):
self.config.i18ncompile(['en', 'fr'])
try:
self.config._gettext_init()
res = self.webapp.post(
'/login',
{'__login': self.admlogin, '__password': 'empty'},
headers={'Accept-Language': 'fr'},
status=403)
finally:
rmtree(join(self.config.apphome, 'i18n'))
self.assertIn(u"\xc9chec de l'authentification", res.text)
if __name__ == '__main__':
from unittest import main
main()