@@ -81,17 +81,6 @@ async def test_list_models_yolo_read_mode(
8181 {"model" : "sale.order" , "name" : "Sales Order" },
8282 ]
8383
84- # Mock permissions for read-only mode
85- def mock_get_permissions (model ):
86- mock_perm = MagicMock ()
87- mock_perm .can_read = True
88- mock_perm .can_write = False
89- mock_perm .can_create = False
90- mock_perm .can_unlink = False
91- return mock_perm
92-
93- mock_access_controller .get_model_permissions .side_effect = mock_get_permissions
94-
9584 # Create handler
9685 handler = OdooToolHandler (
9786 mock_app , mock_connection , mock_access_controller , config_yolo_read
@@ -120,12 +109,11 @@ def mock_get_permissions(model):
120109 assert warning_model ["operations" ]["create" ] is False
121110 assert warning_model ["operations" ]["unlink" ] is False
122111
123- # Check actual models have read- only permissions
112+ # Check actual models don't have operations field ( only in warning model)
124113 for model in models [1 :]:
125- assert model ["operations" ]["read" ] is True
126- assert model ["operations" ]["write" ] is False
127- assert model ["operations" ]["create" ] is False
128- assert model ["operations" ]["unlink" ] is False
114+ assert "operations" not in model
115+ assert "model" in model
116+ assert "name" in model
129117
130118 @pytest .mark .asyncio
131119 async def test_list_models_yolo_full_mode (
@@ -138,17 +126,6 @@ async def test_list_models_yolo_full_mode(
138126 {"model" : "account.move" , "name" : "Journal Entry" },
139127 ]
140128
141- # Mock permissions for full access mode
142- def mock_get_permissions (model ):
143- mock_perm = MagicMock ()
144- mock_perm .can_read = True
145- mock_perm .can_write = True
146- mock_perm .can_create = True
147- mock_perm .can_unlink = True
148- return mock_perm
149-
150- mock_access_controller .get_model_permissions .side_effect = mock_get_permissions
151-
152129 # Create handler
153130 handler = OdooToolHandler (
154131 mock_app , mock_connection , mock_access_controller , config_yolo_full
@@ -170,12 +147,11 @@ def mock_get_permissions(model):
170147 assert warning_model ["operations" ]["create" ] is True
171148 assert warning_model ["operations" ]["unlink" ] is True
172149
173- # Check actual models have full permissions
150+ # Check actual models don't have operations field (only in warning model)
174151 for model in models [1 :]:
175- assert model ["operations" ]["read" ] is True
176- assert model ["operations" ]["write" ] is True
177- assert model ["operations" ]["create" ] is True
178- assert model ["operations" ]["unlink" ] is True
152+ assert "operations" not in model
153+ assert "model" in model
154+ assert "name" in model
179155
180156 @pytest .mark .asyncio
181157 async def test_list_models_standard_mode (
@@ -286,16 +262,6 @@ async def test_list_models_yolo_includes_common_system_models(
286262 {"model" : "ir.model" , "name" : "Models" },
287263 ]
288264
289- def mock_get_permissions (model ):
290- mock_perm = MagicMock ()
291- mock_perm .can_read = True
292- mock_perm .can_write = True
293- mock_perm .can_create = True
294- mock_perm .can_unlink = True
295- return mock_perm
296-
297- mock_access_controller .get_model_permissions .side_effect = mock_get_permissions
298-
299265 # Create handler
300266 handler = OdooToolHandler (
301267 mock_app , mock_connection , mock_access_controller , config_yolo_full
@@ -324,16 +290,6 @@ async def test_yolo_mode_logging(
324290 {"model" : "res.partner" , "name" : "Contact" },
325291 ]
326292
327- def mock_get_permissions (model ):
328- mock_perm = MagicMock ()
329- mock_perm .can_read = True
330- mock_perm .can_write = False
331- mock_perm .can_create = False
332- mock_perm .can_unlink = False
333- return mock_perm
334-
335- mock_access_controller .get_model_permissions .side_effect = mock_get_permissions
336-
337293 # Create handler
338294 handler = OdooToolHandler (
339295 mock_app , mock_connection , mock_access_controller , config_yolo_read
0 commit comments