100 lines
3.9 KiB
Python
100 lines
3.9 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 (POOL, DB_NAME, USER, CONTEXT,
|
|
install_module)
|
|
from trytond.transaction import Transaction
|
|
|
|
|
|
class WizardTestCase(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
install_module('test')
|
|
self.wizard = POOL.get('test.test_wizard', type='wizard')
|
|
self.session = POOL.get('ir.session.wizard')
|
|
self.group = POOL.get('res.group')
|
|
|
|
def test0010create(self):
|
|
'Create Session Wizard'
|
|
with Transaction().start(DB_NAME, USER, CONTEXT):
|
|
session_id, start_state, end_state = self.wizard.create()
|
|
self.assertEqual(start_state, 'start')
|
|
self.assertEqual(end_state, 'end')
|
|
self.assert_(session_id)
|
|
|
|
def test0020delete(self):
|
|
'Delete Session Wizard'
|
|
with Transaction().start(DB_NAME, USER, CONTEXT):
|
|
session_id, _, _ = self.wizard.create()
|
|
self.wizard.delete(session_id)
|
|
|
|
def test0030session(self):
|
|
'Session Wizard'
|
|
with Transaction().start(DB_NAME, USER, CONTEXT):
|
|
session_id = self.session.create({})
|
|
session = self.wizard(session_id)
|
|
self.assertEqual(session.start.id, None)
|
|
self.assertRaises(AttributeError, getattr, session.start, 'name')
|
|
self.assertEqual(hasattr(session.start, 'name'), False)
|
|
session.start.name = 'Test'
|
|
self.assertRaises(AttributeError, getattr, session.start, 'user')
|
|
self.assertEqual(hasattr(session.start, 'user'), False)
|
|
session.start.user = USER
|
|
group_a = self.group.create({
|
|
'name': 'Group A',
|
|
})
|
|
group_b = self.group.create({
|
|
'name': 'Group B',
|
|
})
|
|
session.start.groups = [
|
|
group_a,
|
|
group_b,
|
|
]
|
|
session._save()
|
|
session = self.wizard(session_id)
|
|
self.assertEqual(session.start.id, None)
|
|
self.assertEqual(session.start.name, 'Test')
|
|
self.assertEqual(session.start.user.id, USER)
|
|
self.assertEqual(session.start.user.login, 'admin')
|
|
group_a, group_b = session.start.groups
|
|
self.assertEqual(group_a.name, 'Group A')
|
|
self.assertEqual(group_b.name, 'Group B')
|
|
|
|
def test0040execute(self):
|
|
'Execute Wizard'
|
|
with Transaction().start(DB_NAME, USER, CONTEXT):
|
|
session_id, start_state, end_state = self.wizard.create()
|
|
result = self.wizard.execute(session_id, {}, start_state)
|
|
self.assertEqual(result.keys(), ['view'])
|
|
self.assertEqual(result['view']['defaults'], {
|
|
'name': 'Test wizard',
|
|
})
|
|
self.assertEqual(result['view']['buttons'], [
|
|
{
|
|
'state': 'end',
|
|
'states': '{}',
|
|
'icon': 'tryton-cancel',
|
|
'default': False,
|
|
'string': 'Cancel',
|
|
},
|
|
{
|
|
'state': 'next_',
|
|
'states': '{}',
|
|
'icon': 'tryton-next',
|
|
'default': True,
|
|
'string': 'Next',
|
|
},
|
|
])
|
|
result = self.wizard.execute(session_id, {
|
|
start_state: {
|
|
'name': 'Test Update',
|
|
}}, 'next_')
|
|
self.assertEqual(len(result['actions']), 1)
|
|
|
|
|
|
def suite():
|
|
return unittest.TestLoader().loadTestsFromTestCase(WizardTestCase)
|
|
|
|
if __name__ == '__main__':
|
|
unittest.TextTestRunner(verbosity=2).run(suite())
|