forked from Mapan/odoo17e
112 lines
7.0 KiB
Python
112 lines
7.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo.addons.pos_restaurant.tests import test_frontend
|
|
from odoo import Command
|
|
import odoo.tests
|
|
|
|
|
|
@odoo.tests.tagged('post_install', '-at_install')
|
|
class TestUi(test_frontend.TestFrontendCommon):
|
|
def test_01_preparation_display_resto(self):
|
|
self.env['pos_preparation_display.display'].create({
|
|
'name': 'Preparation Display',
|
|
'pos_config_ids': [(4, self.pos_config.id)],
|
|
})
|
|
|
|
# open a session, the /pos/ui controller will redirect to it
|
|
self.pos_config.printer_ids.unlink()
|
|
self.pos_config.with_user(self.user_demo).open_ui()
|
|
self.start_tour("/pos/ui?config_id=%d" % self.pos_config.id, 'PreparationDisplayTourResto', login="demo")
|
|
|
|
# Order 1 should have 2 preparation orderlines (Coca-Cola and Water)
|
|
order1 = self.env['pos.order'].search([('pos_reference', 'ilike', '%-0001')], limit=1)
|
|
pdis_order1 = self.env['pos_preparation_display.order'].search([('pos_order_id', '=', order1.id)], limit=1)
|
|
self.assertEqual(len(pdis_order1.preparation_display_order_line_ids), 2, "Should have 2 preparation orderlines")
|
|
|
|
# Order 2 should have 1 preparation orderline (Coca-Cola)
|
|
order2 = self.env['pos.order'].search([('pos_reference', 'ilike', '%-0002')], limit=1)
|
|
pdis_order2 = self.env['pos_preparation_display.order'].search([('pos_order_id', '=', order2.id)], limit=1)
|
|
self.assertEqual(len(pdis_order2.preparation_display_order_line_ids), 1, "Should have 1 preparation orderline")
|
|
self.assertEqual(pdis_order2.preparation_display_order_line_ids.product_quantity, 1, "Should have 1 quantity of Coca-Cola")
|
|
|
|
# Order 3 should have 3 preparation orderlines (Coca-Cola, Water and Minute Maid)
|
|
# with one cancelled Minute Maid
|
|
order3 = self.env['pos.order'].search([('pos_reference', 'ilike', '%-0003')], limit=1)
|
|
pdis_order3 = self.env['pos_preparation_display.order'].search([('pos_order_id', '=', order3.id)], limit=1)
|
|
cancelled_orderline = pdis_order3.preparation_display_order_line_ids.filtered(lambda x: x.product_id.name == 'Minute Maid')
|
|
self.assertEqual(cancelled_orderline.product_cancelled, 1, "Should have 1 cancelled Minute Maid orderline")
|
|
self.assertEqual(cancelled_orderline.product_id.name, 'Minute Maid', "Cancelled orderline should be Minute Maid")
|
|
|
|
def test_preparation_display_with_internal_note(self):
|
|
self.env['pos_preparation_display.display'].create({
|
|
'name': 'Preparation Display',
|
|
'pos_config_ids': [(4, self.pos_config.id)],
|
|
})
|
|
self.pos_config.printer_ids.unlink()
|
|
self.pos_config.with_user(self.user_demo).open_ui()
|
|
self.start_tour("/pos/ui?config_id=%d" % self.pos_config.id, 'PreparationDisplayTourInternalNotes', login="demo")
|
|
# Order 1 should have 2 preparation orderlines (Coca-Cola and Water)
|
|
order1 = self.env['pos.order'].search([('pos_reference', 'ilike', '%-0001')], limit=1)
|
|
pdis_order1 = self.env['pos_preparation_display.order'].search([('pos_order_id', '=', order1.id)])
|
|
self.assertEqual(len(pdis_order1.preparation_display_order_line_ids), 2, "Should have 2 preparation orderlines")
|
|
self.assertEqual(pdis_order1.preparation_display_order_line_ids[0].product_quantity, 1)
|
|
self.assertEqual(pdis_order1.preparation_display_order_line_ids[0].internal_note, "Test Internal Notes")
|
|
self.assertEqual(pdis_order1.preparation_display_order_line_ids[1].product_quantity, 1)
|
|
self.assertEqual(pdis_order1.preparation_display_order_line_ids[1].internal_note, "Test Internal Notes")
|
|
|
|
def test_bill_preparation_display(self):
|
|
pos_config = self.env['pos.config'].create({
|
|
'name': 'Restaurant',
|
|
'module_pos_restaurant': True,
|
|
'iface_printbill': True,
|
|
})
|
|
|
|
pdis = self.env['pos_preparation_display.display'].create({
|
|
'name': 'Preparation Display',
|
|
'pos_config_ids': [Command.link(pos_config.id)],
|
|
})
|
|
|
|
order_count = pdis.order_count
|
|
|
|
pos_config.with_user(self.user_demo).open_ui()
|
|
self.start_tour("/pos/ui?config_id=%d" % pos_config.id, 'MakeBillTour', login="demo")
|
|
|
|
self.assertEqual(order_count, pdis.order_count)
|
|
|
|
def test_preparation_display_with_empty_internal_note(self):
|
|
self.env['pos_preparation_display.display'].create({
|
|
'name': 'Preparation Display',
|
|
'pos_config_ids': [(4, self.pos_config.id)],
|
|
})
|
|
self.pos_config.printer_ids.unlink()
|
|
self.pos_config.with_user(self.user_demo).open_ui()
|
|
self.start_tour("/pos/ui?config_id=%d" % self.pos_config.id, 'PreparationDisplayTourEmptyInternalNotes', login="demo")
|
|
# Order 1 should have 2 preparation orderlines (Coca-Cola and Coca-Cola)
|
|
order1 = self.env['pos.order'].search([('pos_reference', 'ilike', '%-0001')], limit=1)
|
|
pdis_order1 = self.env['pos_preparation_display.order'].search([('pos_order_id', '=', order1.id)])
|
|
self.assertEqual(len(pdis_order1.preparation_display_order_line_ids), 2, "Should have 2 preparation orderlines")
|
|
self.assertEqual(pdis_order1.preparation_display_order_line_ids[0].product_quantity, 1)
|
|
self.assertEqual(pdis_order1.preparation_display_order_line_ids[0].internal_note, "")
|
|
self.assertEqual(pdis_order1.preparation_display_order_line_ids[1].product_quantity, 1)
|
|
self.assertEqual(pdis_order1.preparation_display_order_line_ids[1].internal_note, "")
|
|
|
|
def test_preparation_display_with_internal_notes(self):
|
|
self.env['pos_preparation_display.display'].create({
|
|
'name': 'Preparation Display',
|
|
'pos_config_ids': [(4, self.pos_config.id)],
|
|
})
|
|
self.pos_config.printer_ids.unlink()
|
|
self.pos_config.with_user(self.user_demo).open_ui()
|
|
self.start_tour("/pos/ui?config_id=%d" % self.pos_config.id, 'PreparationDisplayTourWithInternalNotes', login="demo")
|
|
# Order 1 should have 3 preparation orderlines (Coca-Cola, Coca-Cola and Coca-Cola)
|
|
order1 = self.env['pos.order'].search([('pos_reference', 'ilike', '%-0001')], limit=1)
|
|
pdis_order1 = self.env['pos_preparation_display.order'].search([('pos_order_id', '=', order1.id)])
|
|
self.assertEqual(len(pdis_order1.preparation_display_order_line_ids), 3, "Should have 3 preparation orderlines")
|
|
self.assertEqual(pdis_order1.preparation_display_order_line_ids[0].product_quantity, 1)
|
|
self.assertEqual(pdis_order1.preparation_display_order_line_ids[0].internal_note, "Test Internal Notes")
|
|
self.assertEqual(pdis_order1.preparation_display_order_line_ids[1].product_quantity, 1)
|
|
self.assertEqual(pdis_order1.preparation_display_order_line_ids[1].internal_note, "Test Internal Notes")
|
|
self.assertEqual(pdis_order1.preparation_display_order_line_ids[2].product_quantity, 1)
|
|
self.assertEqual(pdis_order1.preparation_display_order_line_ids[2].internal_note, "Test Internal Notes")
|