|
5 | 5 | import signal |
6 | 6 | from unittest.mock import MagicMock, patch, mock_open |
7 | 7 |
|
8 | | -# ------------------------------------------------------------------------- |
9 | | -# 1. GLOBAL MOCKS |
10 | | -# ------------------------------------------------------------------------- |
11 | | -# Mock GUI elements |
12 | | -sys.modules['tkinter'] = MagicMock() |
13 | | -sys.modules['tkinter.ttk'] = MagicMock() |
14 | | -sys.modules['tkinter.messagebox'] = MagicMock() |
15 | | -sys.modules['tkinter.filedialog'] = MagicMock() |
16 | | - |
17 | | -# Mock Multiprocessing to prevent Queue.get() hangs |
18 | | -mock_mp = MagicMock() |
19 | | -sys.modules['multiprocessing'] = mock_mp |
20 | | -sys.modules['multiprocessing.queues'] = MagicMock() |
21 | | - |
22 | | -# Mock Matplotlib |
23 | | -mock_plt = MagicMock() |
24 | | -mock_fig = MagicMock() |
25 | | -mock_ax = MagicMock() |
26 | | -mock_line = MagicMock() |
27 | | -mock_ax.plot.return_value = [mock_line] |
28 | | -mock_plt.subplots.return_value = (mock_fig, mock_ax) |
29 | | -sys.modules['matplotlib'] = MagicMock() |
30 | | -sys.modules['matplotlib.pyplot'] = mock_plt |
31 | | -sys.modules['matplotlib.figure'] = MagicMock() |
32 | | -sys.modules['matplotlib.backends'] = MagicMock() |
33 | | -sys.modules['matplotlib.backends.backend_tkagg'] = MagicMock() |
34 | | - |
35 | | - |
36 | 8 | class TestDeepSimulation(unittest.TestCase): |
37 | 9 |
|
38 | 10 | def setUp(self): |
| 11 | + # Mock GUI elements |
| 12 | + self.tkinter_patch = patch.dict('sys.modules', { |
| 13 | + 'tkinter': MagicMock(), |
| 14 | + 'tkinter.ttk': MagicMock(), |
| 15 | + 'tkinter.messagebox': MagicMock(), |
| 16 | + 'tkinter.filedialog': MagicMock(), |
| 17 | + }) |
| 18 | + self.tkinter_patch.start() |
| 19 | + self.addCleanup(self.tkinter_patch.stop) |
| 20 | + |
| 21 | + # Mock Multiprocessing to prevent Queue.get() hangs |
| 22 | + self.mp_patch = patch.dict('sys.modules', { |
| 23 | + 'multiprocessing': MagicMock(), |
| 24 | + 'multiprocessing.queues': MagicMock(), |
| 25 | + }) |
| 26 | + self.mp_patch.start() |
| 27 | + self.addCleanup(self.mp_patch.stop) |
| 28 | + |
| 29 | + # Mock Matplotlib |
| 30 | + mock_plt = MagicMock() |
| 31 | + mock_fig = MagicMock() |
| 32 | + mock_ax = MagicMock() |
| 33 | + mock_line = MagicMock() |
| 34 | + mock_ax.plot.return_value = [mock_line] |
| 35 | + mock_plt.subplots.return_value = (mock_fig, mock_ax) |
| 36 | + self.matplotlib_patch = patch.dict('sys.modules', { |
| 37 | + 'matplotlib': MagicMock(), |
| 38 | + 'matplotlib.pyplot': mock_plt, |
| 39 | + 'matplotlib.figure': MagicMock(), |
| 40 | + 'matplotlib.backends': MagicMock(), |
| 41 | + 'matplotlib.backends.backend_tkagg': MagicMock(), |
| 42 | + }) |
| 43 | + self.matplotlib_patch.start() |
| 44 | + self.addCleanup(self.matplotlib_patch.stop) |
| 45 | + |
39 | 46 | self.root_dir = os.path.abspath( |
40 | 47 | os.path.join(os.path.dirname(__file__), '..')) |
41 | 48 | if self.root_dir not in sys.path: |
|
0 commit comments