77from unittest import mock
88
99import pytest
10-
1110from doblib import base
1211from doblib .module import ModuleEnvironment , no_flags
1312
@@ -21,6 +20,22 @@ def env():
2120 return env
2221
2322
23+ def mock_odoo_import ():
24+ odoo = sys .modules ["odoo" ] = mock .MagicMock ()
25+ sys .modules ["odoo.tools" ] = odoo .tools
26+ sys .modules ["odoo.release" ] = odoo .release = mock .MagicMock (version_info = (18 ,))
27+ sys .modules ["odoo.api" ] = odoo .api
28+ sys .modules ["odoo.cli" ] = odoo .cli
29+ sys .modules ["odoo.cli.server" ] = odoo .cli .server
30+ sys .modules ["odoo.tools" ] = odoo .tools
31+ sys .modules ["odoo.modules" ] = odoo .modules
32+ sys .modules ["odoo.modules.db" ] = odoo .modules .db
33+ sys .modules ["odoo.modules.registry" ] = odoo .modules .registry
34+ sys .modules ["odoo.release" ] = odoo .release
35+ sys .modules ["odoo.sql_db" ] = odoo .sql_db
36+ return odoo
37+
38+
2439def test_run_migration (env ):
2540 cur = os .getcwd ()
2641 os .chdir ("tests/environment/" )
@@ -85,11 +100,7 @@ def test_get_installed_modules(env):
85100
86101
87102def test_install_all (env ):
88- odoo = sys .modules ["odoo" ] = mock .MagicMock ()
89- sys .modules ["odoo.release" ] = odoo .release = mock .MagicMock (version_info = (18 ,))
90- sys .modules ["odoo.tools" ] = odoo .tools
91- sys .modules ["odoo.modules" ] = odoo .modules
92- sys .modules ["odoo.modules.registry" ] = odoo .modules .registry
103+ odoo = mock_odoo_import ()
93104
94105 env .install_all ("odoo" , ["module" ])
95106 odoo .modules .registry .Registry .new .assert_called_once_with (
@@ -103,10 +114,7 @@ def test_install_all(env):
103114
104115
105116def test_update_all (env ):
106- odoo = sys .modules ["odoo" ] = mock .MagicMock ()
107- sys .modules ["odoo.tools" ] = odoo .tools
108- sys .modules ["odoo.modules" ] = odoo .modules
109- sys .modules ["odoo.modules.registry" ] = odoo .modules .registry
117+ odoo = mock_odoo_import ()
110118
111119 env .update_specific ("odoo" , installed = True )
112120 odoo .modules .registry .Registry .new .assert_called_once_with (
@@ -116,10 +124,7 @@ def test_update_all(env):
116124
117125
118126def test_update_listed (env ):
119- odoo = sys .modules ["odoo" ] = mock .MagicMock ()
120- sys .modules ["odoo.tools" ] = odoo .tools
121- sys .modules ["odoo.modules" ] = odoo .modules
122- sys .modules ["odoo.modules.registry" ] = odoo .modules .registry
127+ odoo = mock_odoo_import ()
123128 env ._get_modules = mock .MagicMock ()
124129
125130 env .update_specific ("odoo" , listed = True )
@@ -149,17 +154,9 @@ def test_update_changed(env):
149154
150155def test_update (env ):
151156 # Quite complex and we have to mock plenty of stuff
152- odoo = sys .modules ["odoo" ] = mock .MagicMock ()
153- tools = sys .modules ["odoo.tools" ] = odoo .tools
154- sys .modules ["odoo.api" ] = odoo .api
155- sys .modules ["odoo.cli" ] = odoo .cli
156- sys .modules ["odoo.cli.server" ] = odoo .cli .server
157- sys .modules ["odoo.tools" ] = odoo .tools
158- sys .modules ["odoo.modules" ] = odoo .modules
159- sys .modules ["odoo.modules.db" ] = odoo .modules .db
160- sys .modules ["odoo.modules.registry" ] = odoo .modules .registry
161- sys .modules ["odoo.release" ] = odoo .release
162- sys .modules ["odoo.sql_db" ] = odoo .sql_db
157+ odoo = mock_odoo_import ()
158+ tools = odoo .tools
159+
163160 tools .config .__getitem__ .return_value = "odoo"
164161 odoo .release .version_info = (14 , 0 )
165162 env .generate_config = mock .MagicMock ()
@@ -196,7 +193,7 @@ def test_update(env):
196193 env .update_specific .assert_called_once_with (
197194 "odoo" ,
198195 whitelist = ["abc" , "def" ],
199- blacklist = {"normal" },
196+ blacklist = {"abc" , "def" , " normal" },
200197 installed = False ,
201198 listed = False ,
202199 )
0 commit comments