|
6 | 6 | from mod_regression.models import RegressionTest |
7 | 7 | from mod_test.models import (Test, TestPlatform, TestProgress, TestResult, |
8 | 8 | TestResultFile, TestStatus) |
9 | | -from tests.base import BaseTestCase, create_mock_db_query |
| 9 | +from tests.base import BaseTestCase |
10 | 10 | from tests.test_auth.test_controllers import MockUser |
11 | 11 |
|
12 | 12 |
|
@@ -122,25 +122,30 @@ def test_ccextractor_version_not_found(self): |
122 | 122 | self.assertEqual(response.status_code, 404) |
123 | 123 | self.assert_template_used('test/test_not_found.html') |
124 | 124 |
|
125 | | - @mock.patch('mod_test.controllers.g') |
126 | 125 | @mock.patch('mod_test.controllers.GeneralData') |
127 | 126 | @mock.patch('mod_test.controllers.Category') |
128 | | - @mock.patch('mod_test.controllers.TestProgress') |
129 | | - def test_data_for_test(self, mock_test_progress, mock_category, mock_gen_data, mock_g): |
| 127 | + def test_data_for_test(self, mock_category, mock_gen_data): |
130 | 128 | """Test get_data_for_test method.""" |
131 | 129 | from mod_test.controllers import get_data_for_test |
132 | 130 |
|
133 | 131 | mock_test = mock.MagicMock() |
| 132 | + mock_test.progress = [] # No progress yet, so avg_minutes should be calculated |
| 133 | + mock_test.platform.value = 'linux' |
134 | 134 |
|
135 | | - # Set up mock db query chain to avoid AsyncMock behavior in Python 3.13+ |
136 | | - create_mock_db_query(mock_g) |
| 135 | + # Mock GeneralData query responses for average times |
| 136 | + mock_avg_time = mock.MagicMock() |
| 137 | + mock_avg_time.value = '300' # 5 minutes in seconds |
| 138 | + mock_prep_time = mock.MagicMock() |
| 139 | + mock_prep_time.value = '60' # 1 minute in seconds |
| 140 | + mock_gen_data.query.filter.return_value.first.side_effect = [mock_avg_time, mock_prep_time] |
137 | 141 |
|
138 | 142 | result = get_data_for_test(mock_test) |
139 | 143 |
|
140 | 144 | self.assertIsInstance(result, dict) |
141 | | - self.assertEqual(6, mock_g.db.query.call_count) |
| 145 | + self.assertIn('avg_minutes', result) |
| 146 | + self.assertEqual(result['avg_minutes'], 6) # (300 + 60) / 60 = 6 minutes |
142 | 147 | mock_category.query.filter.assert_called_once() |
143 | | - mock_gen_data.query.filter.assert_called() |
| 148 | + self.assertEqual(mock_gen_data.query.filter.call_count, 2) |
144 | 149 |
|
145 | 150 | @mock.patch('mod_test.controllers.Test') |
146 | 151 | def test_get_json_data_no_test(self, mock_test): |
|
0 commit comments