|
1 | 1 | # Part of Odoo. See LICENSE file for full copyright and licensing details. |
2 | 2 |
|
| 3 | +from datetime import datetime |
3 | 4 | from freezegun import freeze_time |
4 | 5 | from unittest.mock import patch |
5 | 6 |
|
@@ -354,56 +355,37 @@ def _create_device_log_for_user(self, session, count): |
354 | 355 | 'session_identifier': odoo.http.root.session_store.generate_key(), |
355 | 356 | 'user_id': session.uid, |
356 | 357 | 'revoked': False, |
| 358 | + 'first_activity': datetime.now(), |
| 359 | + 'last_activity': datetime.now(), |
357 | 360 | }) |
358 | 361 |
|
359 | | - def test_filesystem_reflexion_user(self): |
| 362 | + def test_filesystem_reflexion(self): |
360 | 363 | session = self.authenticate(self.user_admin.login, self.user_admin.login) |
361 | | - self._create_device_log_for_user(session, 10) |
362 | | - session = self.authenticate(self.user_internal.login, self.user_internal.login) |
363 | | - self._create_device_log_for_user(session, 10) |
364 | | - |
365 | | - devices, logs = self.get_devices_logs(self.user_internal) |
366 | | - self.assertEqual(len(devices), 10) |
367 | | - self.assertEqual(len(logs), 10) |
368 | | - self.assertEqual(len(self.user_internal.device_ids), 10) |
369 | | - |
370 | | - self.DeviceLog.with_user(self.user_internal)._ResDeviceLog__update_revoked() |
371 | | - self.DeviceLog.flush_model() # Because write on ``res.device.log`` and so we have new values in cache |
372 | | - self.Device.invalidate_model() # Because it depends on the ``res.device.log`` model (updated in database) |
373 | | - |
374 | | - devices, _ = self.get_devices_logs(self.user_internal) |
375 | | - self.assertEqual(len(devices), 0) # No file exist on the filesystem (``revoked`` equals to ``False``) |
376 | | - self.assertEqual(len(self.user_internal.device_ids), 0) |
377 | | - |
378 | | - # Admin device logs are not updated |
379 | | - devices, _ = self.get_devices_logs(self.user_admin) |
380 | | - self.assertEqual(len(devices), 10) |
381 | | - self.assertEqual(len(self.user_admin.device_ids), 10) |
382 | | - |
383 | | - def test_filesystem_reflexion_admin(self): |
384 | | - session = self.authenticate(self.user_admin.login, self.user_admin.login) |
385 | | - self._create_device_log_for_user(session, 10) |
| 364 | + with freeze_time('2025-01-01 08:00:00'): |
| 365 | + self._create_device_log_for_user(session, 10) |
386 | 366 |
|
387 | 367 | devices, logs = self.get_devices_logs(self.user_admin) |
388 | 368 | self.assertEqual(len(devices), 10) |
389 | 369 | self.assertEqual(len(logs), 10) |
390 | 370 | self.assertEqual(len(self.user_admin.device_ids), 10) |
391 | 371 |
|
392 | 372 | session = self.authenticate(self.user_internal.login, self.user_internal.login) |
393 | | - self._create_device_log_for_user(session, 10) |
| 373 | + with freeze_time('2025-01-01 08:00:00'): |
| 374 | + self._create_device_log_for_user(session, 10) |
394 | 375 |
|
395 | 376 | devices, logs = self.get_devices_logs(self.user_internal) |
396 | 377 | self.assertEqual(len(devices), 10) |
397 | 378 | self.assertEqual(len(logs), 10) |
398 | 379 | self.assertEqual(len(self.user_internal.device_ids), 10) |
399 | 380 |
|
400 | | - # Admin can update all device logs |
401 | | - self.DeviceLog.with_user(self.user_admin)._ResDeviceLog__update_revoked() |
402 | | - self.DeviceLog.flush_model() |
403 | | - self.Device.invalidate_model() |
| 381 | + # Update all device logs |
| 382 | + with freeze_time('2025-02-01 08:00:00'), patch.object(self.cr, 'commit', lambda: ...): |
| 383 | + self.DeviceLog.sudo()._ResDeviceLog__update_revoked() |
| 384 | + self.DeviceLog.flush_model() # Because write on ``res.device.log`` and so we have new values in cache |
| 385 | + self.Device.invalidate_model() # Because it depends on the ``res.device.log`` model (updated in database) |
404 | 386 |
|
405 | 387 | devices, _ = self.get_devices_logs(self.user_admin) |
406 | | - self.assertEqual(len(devices), 0) |
| 388 | + self.assertEqual(len(devices), 0) # No file exist on the filesystem (``revoked`` equals to ``True``) |
407 | 389 | self.assertEqual(len(self.user_admin.device_ids), 0) |
408 | 390 |
|
409 | 391 | devices, _ = self.get_devices_logs(self.user_internal) |
|
0 commit comments