Skip to content

Commit

Permalink
[IMP] test_pos2023: добавили еще более реалистичный вариант теста tes…
Browse files Browse the repository at this point in the history
…t_late_session_close (#2)

В нем просто обозначают, что есть 1000 посов и каждый делает свой заказ
  • Loading branch information
em230418 committed Mar 10, 2024
1 parent ce68c48 commit 0fb690f
Showing 1 changed file with 39 additions and 7 deletions.
46 changes: 39 additions & 7 deletions test_pos2023/tests/test_session_close.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import inspect
import logging

from odoo.tests import tagged
Expand All @@ -11,8 +12,6 @@
class TestSessionClose(TestPoSCommon):
def setUp(self):
super(TestPoSCommon, self).setUp()
self.config1 = self._create_basic_config()
self.config2 = self._create_basic_config()
self.product1 = self.env["product.product"].create(
{
"type": "consu",
Expand All @@ -26,10 +25,14 @@ def setUp(self):
)

def test_late_session_close(self):
method_name = inspect.currentframe().f_code.co_name
config1 = self._create_basic_config()
config2 = self._create_basic_config()

# В первом POS открываем сессию
self.config = self.config1
self.config = config1
self.open_new_session()
self.session1 = self.pos_session
session1 = self.pos_session

# Оплачиваем наличкой один заказ
orders = []
Expand All @@ -45,10 +48,10 @@ def test_late_session_close(self):
# Не закрываем сессию в первом POS
# и открываем и закрываем много сессий на втором POS-е
# в каждой сессии также по одному заказу оплачиваем наличкой
self.config = self.config2
self.config = config2

for i in range(1000):
_logger.info("running session %s" % (i,))
_logger.info("%s: running session %s" % (method_name, i))
self.open_new_session()
order = self.create_ui_order_data(
[(self.product1, 1)],
Expand All @@ -59,4 +62,33 @@ def test_late_session_close(self):

# Ну а теперь попробуем закрывать самую первую сессию
_logger.info("closing very first session")
self.session1.action_pos_session_validate()
session1.action_pos_session_validate()

def test_1000_pos_configs(self):
method_name = inspect.currentframe().f_code.co_name
configs = [self._create_basic_config() for x in range(1000)]

for i, pos in enumerate(configs):
# открываем очередную кассу
_logger.info("%s: running session %s" % (method_name, i))
self.config = pos
self.open_new_session()

# заказываем что-то
orders = []
orders.append(
self.create_ui_order_data(
[(self.product1, 1)],
payments=[(self.cash_pm, 10)],
)
)
self.env["pos.order"].create_from_ui(orders)

if i == 0:
# первую сессию просто запоминаем
first_session = self.pos_session
else:
# остальные сессии закрываем
self.pos_session.action_pos_session_validate()

first_session.action_pos_session_validate()

0 comments on commit 0fb690f

Please sign in to comment.