[adapters] move class EntityAdapter from cubicweb.view to cubicweb.entity
The adapter mechanism is not specific to the use of views. Moving the
class the cubicweb.entity makes this clearer.
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()