Files
tryton/trytond/tests/test_user.py
T
Cédric Krier da1be07832 Make TestCase create and drop its database
and add with_transaction decorator.

issue5263
review20711002
2016-02-06 19:10:35 +01:00

68 lines
2.0 KiB
Python

# This file is part of Tryton. The COPYRIGHT file at the top level of this
# repository contains the full copyright notices and license terms.
import unittest
from trytond.tests.test_tryton import install_module, with_transaction
from trytond.pool import Pool
from trytond.res.user import bcrypt
class UserTestCase(unittest.TestCase):
'Test User'
@classmethod
def setUpClass(cls):
install_module('res')
def create_user(self, login, password, hash_method=None):
pool = Pool()
User = pool.get('res.user')
user, = User.create([{
'name': login,
'login': login,
}])
if hash_method:
hash = getattr(User, 'hash_' + hash_method)
User.write([user], {
'password_hash': hash(password),
})
else:
User.write([user], {
'password': password,
})
def check_user(self, login, password):
pool = Pool()
User = pool.get('res.user')
user, = User.search([('login', '=', login)])
user_id = User.get_login(login, password)
self.assertEqual(user_id, user.id)
bad_user_id = User.get_login(login, password + 'wrong')
self.assertEqual(bad_user_id, 0)
@with_transaction()
def test_test_hash(self):
'Test default hash password'
self.create_user('user', '12345')
self.check_user('user', '12345')
@with_transaction()
def test_test_sha1(self):
'Test sha1 password'
self.create_user('user', '12345', 'sha1')
self.check_user('user', '12345')
@unittest.skipIf(bcrypt is None, 'requires bcrypt')
@with_transaction()
def test_test_bcrypt(self):
'Test bcrypt password'
self.create_user('user', '12345', 'bcrypt')
self.check_user('user', '12345')
def suite():
return unittest.TestLoader().loadTestsFromTestCase(UserTestCase)