# -*- encoding: utf-8 -*- ############################################################################## # # Admin Passkey module for Odoo # Copyright (C) 2013-2014 GRAP (http://www.grap.coop) # @author Sylvain LE GAL (https://twitter.com/legalsylvain) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # ############################################################################## import threading from openerp.tests.common import TransactionCase class TestAuthAdminPasskey(TransactionCase): """Tests for 'Auth Admin Passkey' Module""" # Overload Section def setUp(self): super(TestAuthAdminPasskey, self).setUp() # Get Registries self.imd_obj = self.registry('ir.model.data') self.ru_obj = self.registry('res.users') # Get Database name self.db = threading.current_thread().dbname # Get ids from xml_ids self.admin_user_id = self.imd_obj.get_object_reference( self.cr, self.uid, 'base', 'user_root')[1] self.demo_user_id = self.imd_obj.get_object_reference( self.cr, self.uid, 'base', 'user_demo')[1] # Test Section def test_01_normal_login_admin_succeed(self): """[Regression Test] Test the succeed of login with 'admin' / 'admin'""" res = self.ru_obj.authenticate(self.db, 'admin', 'admin', {}) self.assertEqual( res, self.admin_user_id, "'admin' / 'admin' login must succeed.") def test_02_normal_login_admin_fail(self): """[Regression Test] Test the fail of login with 'admin' / 'bad_password'""" res = self.ru_obj.authenticate(self.db, 'admin', 'bad_password', {}) self.assertEqual( res, False, "'admin' / 'bad_password' login must fail.") def test_03_normal_login_demo_succeed(self): """[Regression Test] Test the succeed of login with 'demo' / 'demo'""" res = self.ru_obj.authenticate(self.db, 'demo', 'demo', {}) self.assertEqual( res, self.demo_user_id, "'demo' / 'demo' login must succeed.") def test_04_normal_login_demo_fail(self): """[Regression Test] Test the fail of login with 'demo' / 'bad_password'""" res = self.ru_obj.authenticate(self.db, 'demo', 'bad_password', {}) self.assertEqual( res, False, "'demo' / 'bad_password' login must fail.") def test_05_passkey_login_demo_succeed(self): """[New Feature] Test the succeed of login with 'demo' / 'admin'""" res = self.ru_obj.authenticate(self.db, 'demo', 'admin', {}) self.assertEqual( res, self.demo_user_id, "'demo' / 'admin' login must succeed.") def test_06_passkey_login_demo_succeed(self): """[Bug #1319391] Test the correct behaviour of login with 'bad_login' / 'admin'""" exception_raised = False try: self.ru_obj.authenticate(self.db, 'bad_login', 'admin', {}) except: exception_raised = True self.assertEqual( exception_raised, False, "'bad_login' / 'admin' musn't raise Error.")