|
1 | 1 | import logging
|
2 | 2 | from unittest.mock import patch
|
3 | 3 |
|
| 4 | +import django |
4 | 5 | from dateutil.relativedelta import relativedelta
|
5 | 6 | from django.utils import timezone
|
6 | 7 |
|
@@ -153,3 +154,29 @@ def test_mitigated_outside_sla(self):
|
153 | 154 | self.assertTrue("Out of SLA" in finding_sla(finding))
|
154 | 155 | self.assertTrue("15 days past" in finding_sla(finding))
|
155 | 156 | self.assertTrue(">15<" in finding_sla(finding))
|
| 157 | + |
| 158 | + # test implicit parsing of finding.date (GitHub #12299) |
| 159 | + def test_finding_date_formats(self): |
| 160 | + with self.subTest(i=0): |
| 161 | + # date set to now shouldn't result in an error |
| 162 | + finding = Finding(test=Test.objects.get(id=89), title="Test Finding 1", severity="High") |
| 163 | + finding.date = timezone.now() |
| 164 | + finding.save() |
| 165 | + |
| 166 | + with self.subTest(i=1): |
| 167 | + # date set to simple date string shouldn't result in an error |
| 168 | + finding = Finding(test=Test.objects.get(id=89), title="Test Finding 2", severity="High") |
| 169 | + finding.date = "2025-04-23" |
| 170 | + finding.save() |
| 171 | + |
| 172 | + with self.subTest(i=2): |
| 173 | + # date set to ISO date string shouldn't result in an error |
| 174 | + finding = Finding(test=Test.objects.get(id=89), title="Test Finding 3", severity="High") |
| 175 | + finding.date = "2025-04-23T12:00:00Z"[:10] |
| 176 | + finding.save() |
| 177 | + |
| 178 | + with self.subTest(i=3) and self.assertRaises(django.core.exceptions.ValidationError): |
| 179 | + # date set to ISO datetime string will result in a Django Error, not an error in our code |
| 180 | + finding = Finding(test=Test.objects.get(id=89), title="Test Finding 3", severity="High") |
| 181 | + finding.date = "2025-04-23T12:00:00+02:00" |
| 182 | + finding.save() |
0 commit comments