11# Copyright 2023 Camptocamp SA
22# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
3+ import logging
34
45from .common import TestMTOVariantCommon
56
@@ -30,11 +31,9 @@ def test_variants_mto(self):
3031 self .toggle_is_mto (black_pen )
3132 self .assertVariantsNotMTO (black_pen )
3233 self .assertVariantsMTO (blue_pen | green_pen | red_pen )
33- # Disable mto route on the template, variants is_mto is kept
34+ # Disable mto route on the template, reset is_mto on variants
3435 self .remove_route (pen_template , self .mto_route )
35- # is_mto is unchanged
36- self .assertVariantsNotMTO (black_pen )
37- self .assertVariantsMTO (blue_pen | green_pen | red_pen )
36+ self .assertVariantsNotMTO (pens )
3837
3938 def test_template_routes_updated (self ):
4039 # instanciate variables
@@ -58,3 +57,52 @@ def test_template_routes_updated(self):
5857 # Template is still MTO, but variants is_mto shouldn't have changed
5958 self .assertVariantsMTO (green_pen | red_pen )
6059 self .assertVariantsNotMTO (black_pen | blue_pen )
60+
61+ def test_template_warnings (self ):
62+ # instanciate variables
63+ pen_template = self .template_pen
64+ pens = self .variants_pen
65+ blue_pen = self .blue_pen
66+ red_pen = self .red_pen
67+ green_pen = self .green_pen
68+ black_pen = self .black_pen
69+ onchange_logger = logging .getLogger ("odoo.tests.common.onchange" )
70+ self .assertVariantsNotMTO (pens )
71+ # enable mto route for black pen
72+ self .toggle_is_mto (black_pen )
73+ self .assertVariantsMTO (black_pen )
74+ # Enable mto route on the template, raise warning as is_mto is reset on variants
75+ with self .assertLogs (onchange_logger ) as log :
76+ self .add_route (pen_template , self .mto_route )
77+ self .assertIn ("WARNING" , log .output [0 ])
78+ self .assertIn ("Activating MTO route will reset" , log .output [0 ])
79+ self .assertVariantsMTO (pens )
80+ # Disable mto route for black pen
81+ self .toggle_is_mto (black_pen )
82+ self .assertVariantsNotMTO (black_pen )
83+ self .assertVariantsMTO (blue_pen | green_pen | red_pen )
84+ # Enable unrelated route does not raise warning nor reset
85+ random_route = self .mto_route .create ({"name" : "loutourout de la vit" })
86+ with self .assertLogs (onchange_logger ) as log :
87+ self .add_route (pen_template , random_route )
88+ onchange_logger .info ("No warning raised" )
89+ self .assertNotIn ("WARNING" , log .output [0 ])
90+ self .assertVariantsNotMTO (black_pen )
91+ self .assertVariantsMTO (blue_pen | green_pen | red_pen )
92+ # Disable mto route on the template, raise warning as is_mto is reset on variants
93+ with self .assertLogs (onchange_logger ) as log :
94+ self .remove_route (pen_template , self .mto_route )
95+ self .assertIn ("WARNING" , log .output [0 ])
96+ self .assertIn ("Deactivating MTO route will reset" , log .output [0 ])
97+ self .assertVariantsNotMTO (pens )
98+ # Enable mto route for black pen
99+ self .toggle_is_mto (black_pen )
100+ self .assertVariantsMTO (black_pen )
101+ self .assertVariantsNotMTO (blue_pen | green_pen | red_pen )
102+ # Disable unrelated route does not raise warning nor reset
103+ with self .assertLogs (onchange_logger ) as log :
104+ self .remove_route (pen_template , random_route )
105+ onchange_logger .info ("No warning raised" )
106+ self .assertNotIn ("WARNING" , log .output [0 ])
107+ self .assertVariantsMTO (black_pen )
108+ self .assertVariantsNotMTO (blue_pen | green_pen | red_pen )
0 commit comments