1
1
# Copyright (C) 2024 ISIS Rutherford Appleton Laboratory UKRI
2
2
# SPDX - License - Identifier: GPL-3.0-or-later
3
- from __future__ import annotations
4
3
4
+ from __future__ import annotations
5
+ from typing import TYPE_CHECKING
5
6
from unittest import mock
6
-
7
7
import numpy as np
8
-
8
+ import os
9
9
from mantidimaging .core .operations .loader import load_filter_packages
10
10
from mantidimaging .gui .windows .live_viewer .model import Image_Data
11
11
from mantidimaging .test_helpers .unit_test_helper import FakeFSTestCase
12
12
from pathlib import Path
13
-
14
13
from mantidimaging .eyes_tests .base_eyes import BaseEyesTest
15
14
15
+ if TYPE_CHECKING :
16
+ import time # noqa: F401
17
+
16
18
17
19
class LiveViewerWindowTest (FakeFSTestCase , BaseEyesTest ):
18
20
21
+ def __init__ (self , * args , ** kwargs ):
22
+ super ().__init__ (* args , ** kwargs )
23
+ self .initial_time = 4000.0
24
+ os .environ ['TZ' ] = 'local_time_zone'
25
+
19
26
@classmethod
20
27
def setUpClass (cls ) -> None :
21
28
super ().setUpClass ()
@@ -30,36 +37,42 @@ def setUp(self) -> None:
30
37
def _generate_image (self ):
31
38
image = np .zeros ((10 , 10 ))
32
39
image [5 , :] = np .arange (10 )
40
+ os .utime (self .live_directory , (10 , self .initial_time ))
41
+ self .initial_time += 1000
33
42
return image
34
43
35
44
def _make_simple_dir (self , directory : Path ):
36
45
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
-
46
+ increment = 0
40
47
for file in file_list :
41
48
self .fs .create_file (file )
49
+ os .utime (file , (10 , self .initial_time + increment ))
50
+ increment += 1000
42
51
43
52
return file_list
44
53
45
54
@mock .patch ('mantidimaging.gui.windows.live_viewer.model.ImageWatcher' )
46
- def test_live_view_opens_without_data (self , _mock_image_watcher ):
55
+ @mock .patch ("time.time" , return_value = 4000.0 )
56
+ def test_live_view_opens_without_data (self , _mock_time , _mock_image_watcher ):
47
57
self .imaging .show_live_viewer (self .live_directory )
48
58
self .check_target (widget = self .imaging .live_viewer )
49
59
50
60
@mock .patch ('mantidimaging.gui.windows.live_viewer.presenter.LiveViewerWindowPresenter.load_image' )
51
61
@mock .patch ('mantidimaging.gui.windows.live_viewer.model.ImageWatcher' )
52
- def test_live_view_opens_with_data (self , _mock_image_watcher , mock_load_image ):
62
+ @mock .patch ("time.time" , return_value = 4000.0 )
63
+ def test_live_view_opens_with_data (self , _mock_time , _mock_image_watcher , mock_load_image ):
53
64
file_list = self ._make_simple_dir (self .live_directory )
54
65
image_list = [Image_Data (path ) for path in file_list ]
55
66
mock_load_image .return_value = self ._generate_image ()
56
67
self .imaging .show_live_viewer (self .live_directory )
57
68
self .imaging .live_viewer .presenter .model ._handle_image_changed_in_list (image_list )
69
+ self .assertEqual (self .imaging .live_viewer .label_active_filename .text (), "abc_000004.tif - 1970-01-01 02:13:20" )
58
70
self .check_target (widget = self .imaging .live_viewer )
59
71
60
72
@mock .patch ('mantidimaging.gui.windows.live_viewer.presenter.LiveViewerWindowPresenter.load_image' )
61
73
@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 ):
74
+ @mock .patch ("time.time" , return_value = 4000.0 )
75
+ def test_live_view_opens_with_bad_data (self , _mock_time , _mock_image_watcher , mock_load_image ):
63
76
file_list = self ._make_simple_dir (self .live_directory )
64
77
image_list = [Image_Data (path ) for path in file_list ]
65
78
mock_load_image .side_effect = ValueError
@@ -69,7 +82,8 @@ def test_live_view_opens_with_bad_data(self, _mock_image_watcher, mock_load_imag
69
82
70
83
@mock .patch ('mantidimaging.gui.windows.live_viewer.presenter.LiveViewerWindowPresenter.load_image' )
71
84
@mock .patch ('mantidimaging.gui.windows.live_viewer.model.ImageWatcher' )
72
- def test_rotate_operation_rotates_image (self , _mock_image_watcher , mock_load_image ):
85
+ @mock .patch ("time.time" , return_value = 4000.0 )
86
+ def test_rotate_operation_rotates_image (self , _mock_time , _mock_image_watcher , mock_load_image ):
73
87
file_list = self ._make_simple_dir (self .live_directory )
74
88
image_list = [Image_Data (path ) for path in file_list ]
75
89
mock_load_image .return_value = self ._generate_image ()
0 commit comments