|
1 | 1 | from io import StringIO |
2 | | -from unittest.mock import MagicMock, patch |
| 2 | +from unittest.mock import MagicMock, PropertyMock, patch |
3 | 3 |
|
4 | 4 | import pytest |
5 | 5 | from django.core.management import call_command |
@@ -76,7 +76,7 @@ def test_handle_successful_update(self): |
76 | 76 | setattr(mock_requirements, field, requirement_weight) |
77 | 77 | mock_metric.project.level = "test_level" |
78 | 78 | mock_metric.project.name = TEST_PROJECT_NAME |
79 | | - mock_metric.project.is_level_compliant = MagicMock(return_value=True) |
| 79 | + type(mock_metric.project).is_level_compliant = PropertyMock(return_value=True) |
80 | 80 | mock_metric.is_funding_requirements_compliant = True |
81 | 81 | mock_metric.is_leader_requirements_compliant = True |
82 | 82 | self.mock_metrics.return_value.select_related.return_value = [mock_metric] |
@@ -149,7 +149,7 @@ def test_handle_with_compliance_penalty(self): |
149 | 149 | mock_metric.project.level = LAB_LEVEL |
150 | 150 | mock_metric.project.project_level_official = FLAGSHIP_LEVEL |
151 | 151 | mock_metric.project.name = NON_COMPLIANT_PROJECT_NAME |
152 | | - mock_metric.project.is_level_compliant = MagicMock(return_value=False) |
| 152 | + type(mock_metric.project).is_level_compliant = PropertyMock(return_value=False) |
153 | 153 |
|
154 | 154 | # Set compliance requirements |
155 | 155 | mock_metric.is_funding_requirements_compliant = True |
@@ -231,7 +231,7 @@ def test_handle_without_compliance_penalty(self): |
231 | 231 | mock_metric.project.level = FLAGSHIP_LEVEL |
232 | 232 | mock_metric.project.project_level_official = FLAGSHIP_LEVEL |
233 | 233 | mock_metric.project.name = COMPLIANT_PROJECT_NAME |
234 | | - mock_metric.project.is_level_compliant = MagicMock(return_value=True) |
| 234 | + type(mock_metric.project).is_level_compliant = PropertyMock(return_value=True) |
235 | 235 |
|
236 | 236 | mock_metric.is_funding_requirements_compliant = True |
237 | 237 | mock_metric.is_leader_requirements_compliant = True |
@@ -301,7 +301,7 @@ def test_handle_zero_penalty_weight(self): |
301 | 301 | mock_metric.project.level = LAB_LEVEL |
302 | 302 | mock_metric.project.project_level_official = FLAGSHIP_LEVEL |
303 | 303 | mock_metric.project.name = TEST_PROJECT_NAME |
304 | | - mock_metric.project.is_level_compliant = MagicMock(return_value=False) |
| 304 | + type(mock_metric.project).is_level_compliant = PropertyMock(return_value=False) |
305 | 305 |
|
306 | 306 | mock_metric.is_funding_requirements_compliant = True |
307 | 307 | mock_metric.is_leader_requirements_compliant = True |
@@ -370,7 +370,7 @@ def test_handle_maximum_penalty_weight(self): |
370 | 370 | mock_metric.project.level = LAB_LEVEL |
371 | 371 | mock_metric.project.project_level_official = FLAGSHIP_LEVEL |
372 | 372 | mock_metric.project.name = TEST_PROJECT_NAME |
373 | | - mock_metric.project.is_level_compliant = MagicMock(return_value=False) |
| 373 | + type(mock_metric.project).is_level_compliant = PropertyMock(return_value=False) |
374 | 374 |
|
375 | 375 | mock_metric.is_funding_requirements_compliant = True |
376 | 376 | mock_metric.is_leader_requirements_compliant = True |
@@ -440,7 +440,7 @@ def test_handle_penalty_weight_clamping(self): |
440 | 440 | mock_metric.project.level = LAB_LEVEL |
441 | 441 | mock_metric.project.project_level_official = FLAGSHIP_LEVEL |
442 | 442 | mock_metric.project.name = TEST_PROJECT_NAME |
443 | | - mock_metric.project.is_level_compliant = MagicMock(return_value=False) |
| 443 | + type(mock_metric.project).is_level_compliant = PropertyMock(return_value=False) |
444 | 444 | mock_metric.is_funding_requirements_compliant = True |
445 | 445 | mock_metric.is_leader_requirements_compliant = True |
446 | 446 |
|
|
0 commit comments