Skip to content

Commit 81731fd

Browse files
committed
Mock File Modification Time
1 parent 4f63ace commit 81731fd

File tree

1 file changed

+26
-11
lines changed

1 file changed

+26
-11
lines changed

mantidimaging/eyes_tests/live_viewer_window_test.py

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,29 @@
11
# Copyright (C) 2024 ISIS Rutherford Appleton Laboratory UKRI
22
# SPDX - License - Identifier: GPL-3.0-or-later
3-
from __future__ import annotations
43

4+
from __future__ import annotations
5+
from typing import TYPE_CHECKING
56
from unittest import mock
6-
77
import numpy as np
8-
8+
import os
99
from mantidimaging.core.operations.loader import load_filter_packages
1010
from mantidimaging.gui.windows.live_viewer.model import Image_Data
1111
from mantidimaging.test_helpers.unit_test_helper import FakeFSTestCase
1212
from pathlib import Path
13-
1413
from mantidimaging.eyes_tests.base_eyes import BaseEyesTest
1514

15+
if TYPE_CHECKING:
16+
import time # noqa: F401
17+
1618

1719
class LiveViewerWindowTest(FakeFSTestCase, BaseEyesTest):
1820

21+
def __init__(self, *args, **kwargs):
22+
super().__init__(*args, **kwargs)
23+
self.initial_time = 4000.0
24+
os.environ['TZ'] = 'UTC'
25+
os.system('timedatectl set-timezone UTC')
26+
1927
@classmethod
2028
def setUpClass(cls) -> None:
2129
super().setUpClass()
@@ -30,36 +38,42 @@ def setUp(self) -> None:
3038
def _generate_image(self):
3139
image = np.zeros((10, 10))
3240
image[5, :] = np.arange(10)
41+
os.utime(self.live_directory, (10, self.initial_time))
42+
self.initial_time += 1000
3343
return image
3444

3545
def _make_simple_dir(self, directory: Path):
3646
file_list = [directory / f"abc_{i:06d}.tif" for i in range(5)]
37-
if not directory.exists():
38-
self.fs.create_dir(directory)
39-
47+
increment = 0
4048
for file in file_list:
4149
self.fs.create_file(file)
50+
os.utime(file, (10, self.initial_time + increment))
51+
increment += 1000
4252

4353
return file_list
4454

4555
@mock.patch('mantidimaging.gui.windows.live_viewer.model.ImageWatcher')
46-
def test_live_view_opens_without_data(self, _mock_image_watcher):
56+
@mock.patch("time.time", return_value=4000.0)
57+
def test_live_view_opens_without_data(self, _mock_time, _mock_image_watcher):
4758
self.imaging.show_live_viewer(self.live_directory)
4859
self.check_target(widget=self.imaging.live_viewer)
4960

5061
@mock.patch('mantidimaging.gui.windows.live_viewer.presenter.LiveViewerWindowPresenter.load_image')
5162
@mock.patch('mantidimaging.gui.windows.live_viewer.model.ImageWatcher')
52-
def test_live_view_opens_with_data(self, _mock_image_watcher, mock_load_image):
63+
@mock.patch("time.time", return_value=4000.0)
64+
def test_live_view_opens_with_data(self, _mock_time, _mock_image_watcher, mock_load_image):
5365
file_list = self._make_simple_dir(self.live_directory)
5466
image_list = [Image_Data(path) for path in file_list]
5567
mock_load_image.return_value = self._generate_image()
5668
self.imaging.show_live_viewer(self.live_directory)
5769
self.imaging.live_viewer.presenter.model._handle_image_changed_in_list(image_list)
70+
self.assertEqual(self.imaging.live_viewer.label_active_filename.text(), "abc_000004.tif - 1970-01-01 02:13:20")
5871
self.check_target(widget=self.imaging.live_viewer)
5972

6073
@mock.patch('mantidimaging.gui.windows.live_viewer.presenter.LiveViewerWindowPresenter.load_image')
6174
@mock.patch('mantidimaging.gui.windows.live_viewer.model.ImageWatcher')
62-
def test_live_view_opens_with_bad_data(self, _mock_image_watcher, mock_load_image):
75+
@mock.patch("time.time", return_value=4000.0)
76+
def test_live_view_opens_with_bad_data(self, _mock_time, _mock_image_watcher, mock_load_image):
6377
file_list = self._make_simple_dir(self.live_directory)
6478
image_list = [Image_Data(path) for path in file_list]
6579
mock_load_image.side_effect = ValueError
@@ -69,7 +83,8 @@ def test_live_view_opens_with_bad_data(self, _mock_image_watcher, mock_load_imag
6983

7084
@mock.patch('mantidimaging.gui.windows.live_viewer.presenter.LiveViewerWindowPresenter.load_image')
7185
@mock.patch('mantidimaging.gui.windows.live_viewer.model.ImageWatcher')
72-
def test_rotate_operation_rotates_image(self, _mock_image_watcher, mock_load_image):
86+
@mock.patch("time.time", return_value=4000.0)
87+
def test_rotate_operation_rotates_image(self, _mock_time, _mock_image_watcher, mock_load_image):
7388
file_list = self._make_simple_dir(self.live_directory)
7489
image_list = [Image_Data(path) for path in file_list]
7590
mock_load_image.return_value = self._generate_image()

0 commit comments

Comments
 (0)