im_livechat/tests/test_chatbot_form_ui.py

64 lines
2.9 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import tests
from odoo.addons.base.tests.common import HttpCaseWithUserDemo
@tests.tagged('post_install', '-at_install')
class TestLivechatChatbotFormUI(HttpCaseWithUserDemo):
def test_chatbot_steps_sequence_ui(self):
""" As sequences are *critical* for the chatbot_script script, let us a run a little tour that
creates a few steps, then verify sequences are properly applied. """
self.start_tour(
'/web',
'im_livechat_chatbot_steps_sequence_tour',
login='admin',
step_delay=1000
)
chatbot_script = self.env['chatbot.script'].search([('title', '=', 'Test Chatbot Sequence')])
self.assertEqual(len(chatbot_script.script_step_ids), 3)
self.assertEqual(chatbot_script.script_step_ids[0].message, 'Step 1')
self.assertEqual(chatbot_script.script_step_ids[0].sequence, 0)
self.assertEqual(chatbot_script.script_step_ids[1].message, 'Step 2')
self.assertEqual(chatbot_script.script_step_ids[1].sequence, 1)
self.assertEqual(chatbot_script.script_step_ids[2].message, 'Step 3')
self.assertEqual(chatbot_script.script_step_ids[2].sequence, 2)
def test_chatbot_steps_sequence_with_move_ui(self):
""" Same as above, with more steps and a drag&drop within the tour.
It is important to test those separately, as we want proper sequences even if we don't
move records around. """
self.start_tour(
'/web',
'im_livechat_chatbot_steps_sequence_with_move_tour',
login='admin',
step_delay=1000
)
chatbot_script = self.env['chatbot.script'].search([('title', '=', 'Test Chatbot Sequence')])
self.assertEqual(len(chatbot_script.script_step_ids), 6)
# during the test, we create the steps normally and then move 'Step 5'
# in second position -> check order is correct
self.assertEqual(chatbot_script.script_step_ids[0].message, 'Step 1')
self.assertEqual(chatbot_script.script_step_ids[0].sequence, 0)
self.assertEqual(chatbot_script.script_step_ids[1].message, 'Step 5')
self.assertEqual(chatbot_script.script_step_ids[1].sequence, 1)
self.assertEqual(chatbot_script.script_step_ids[2].message, 'Step 2')
self.assertEqual(chatbot_script.script_step_ids[2].sequence, 2)
self.assertEqual(chatbot_script.script_step_ids[3].message, 'Step 3')
self.assertEqual(chatbot_script.script_step_ids[3].sequence, 3)
self.assertEqual(chatbot_script.script_step_ids[4].message, 'Step 4')
self.assertEqual(chatbot_script.script_step_ids[4].sequence, 4)
self.assertEqual(chatbot_script.script_step_ids[5].message, 'Step 6')
self.assertEqual(chatbot_script.script_step_ids[5].sequence, 5)