Skip to content

Commit 0469aaf

Browse files
committed
Ruff: Add and fix DTZ002 & DTZ011 + reorg some timezone components
1 parent 8a40e70 commit 0469aaf

File tree

12 files changed

+34
-27
lines changed

12 files changed

+34
-27
lines changed

dojo/forms.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import pickle
44
import re
55
import warnings
6-
from datetime import date, datetime
6+
from datetime import datetime
77
from pathlib import Path
88

99
import tagulous
@@ -188,7 +188,7 @@ def __init__(self, attrs=None, years=None, *, required=True):
188188
if years:
189189
self.years = years
190190
else:
191-
this_year = date.today().year
191+
this_year = timezone.now().year
192192
self.years = list(range(this_year - 10, this_year + 1))
193193

194194
def render(self, name, value, attrs=None, renderer=None):
@@ -642,7 +642,7 @@ def clean_tags(self):
642642
# date can only be today or in the past, not the future
643643
def clean_scan_date(self):
644644
date = self.cleaned_data.get("scan_date", None)
645-
if date and date.date() > datetime.today().date():
645+
if date and date.date() > timezone.now().date():
646646
msg = "The date cannot be in the future!"
647647
raise forms.ValidationError(msg)
648648
return date
@@ -3582,7 +3582,7 @@ class Meta:
35823582
def clean_expiration(self):
35833583
expiration = self.cleaned_data.get("expiration", None)
35843584
if expiration:
3585-
today = datetime.today().date()
3585+
today = timezone.now().date()
35863586
if expiration < today:
35873587
msg = "The expiration cannot be in the past"
35883588
raise forms.ValidationError(msg)

dojo/metrics/views.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import logging
44
import operator
55
from calendar import monthrange
6-
from datetime import date, datetime, timedelta
6+
from datetime import datetime, timedelta
77

88
from dateutil.relativedelta import relativedelta
99
from django.contrib import messages
@@ -776,7 +776,7 @@ def view_engineer(request, eid):
776776
f.test.engagement.product.name,
777777
f.severity,
778778
f.title,
779-
(date.today() - f.date).days,
779+
(timezone.now().date() - f.date).days,
780780
"Accepted" if f.risk_accepted else "Active",
781781
f.reporter,
782782
]
@@ -850,7 +850,7 @@ def view_engineer(request, eid):
850850

851851
def _age_buckets(qs):
852852
"""Return aged high/critical finding counts in one SQL round-trip."""
853-
today = date.today()
853+
today = timezone.now().date()
854854
return qs.aggregate(
855855
lt=Count("id", filter=Q(date__gte=today - timedelta(days=30))),
856856
ls=Count("id", filter=Q(date__lte=today - timedelta(days=30), date__gt=today - timedelta(days=60))),

dojo/survey/views.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import pickle
2-
from datetime import date, timedelta
2+
from datetime import timedelta
33

44
from django.contrib import messages
55
from django.contrib.admin.utils import NestedObjects
@@ -136,7 +136,7 @@ def answer_questionnaire(request, eid, sid):
136136
if questions_are_valid:
137137
survey.completed = True
138138
survey.responder = request.user
139-
survey.answered_on = date.today()
139+
survey.answered_on = tz.now().date()
140140
survey.save()
141141
messages.add_message(
142142
request,
@@ -788,7 +788,7 @@ def answer_empty_survey(request, esid):
788788
if questions_are_valid:
789789
survey.completed = True
790790
survey.responder = request.user if not request.user.is_anonymous else None
791-
survey.answered_on = date.today()
791+
survey.answered_on = tz.now().date()
792792
survey.save()
793793
general_survey.num_responses += 1
794794
general_survey.save()

dojo/tasks.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import logging
2-
from datetime import date, timedelta
2+
from datetime import timedelta
33

44
from auditlog.models import LogEntry
55
from celery.utils.log import get_task_logger
@@ -98,7 +98,7 @@ def flush_auditlog(*args, **kwargs):
9898
return
9999

100100
logger.info("Running Cleanup Task for Logentries with %d Months retention", retention_period)
101-
retention_date = date.today() - relativedelta(months=retention_period)
101+
retention_date = timezone.now().date() - relativedelta(months=retention_period)
102102
subset = LogEntry.objects.filter(timestamp__date__lt=retention_date)
103103
event_count = subset.count()
104104
logger.debug("Initially received %d Logentries", event_count)

dojo/test/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -692,7 +692,7 @@ def add_temp_finding(request, tid, fid):
692692

693693
new_finding.tags = form.cleaned_data["tags"]
694694
new_finding.cvssv3 = finding.cvssv3
695-
new_finding.date = form.cleaned_data["date"] or datetime.today()
695+
new_finding.date = form.cleaned_data["date"] or timezone.now().date()
696696

697697
finding_helper.update_finding_status(new_finding, request.user)
698698

dojo/tools/hydra/parser.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import json
22
import logging
3-
from datetime import date
43

4+
from django.utils import timezone
55
from django.utils.dateparse import parse_datetime
66

77
from dojo.models import Endpoint, Finding
@@ -78,7 +78,7 @@ def __extract_finding(
7878
title="Weak username / password combination found for " + host,
7979
date=parse_datetime(metadata.date)
8080
if metadata.date
81-
else date.today(),
81+
else timezone.now().date(),
8282
severity="High",
8383
description=host
8484
+ " on port "

dojo/tools/noseyparker/parser.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import hashlib
22
import json
3-
from datetime import datetime
3+
4+
from django.utils import timezone
45

56
from dojo.models import Finding
67

@@ -90,7 +91,7 @@ def version_0_16_0(self, line, test):
9091
description=description,
9192
severity="High",
9293
mitigation="Reset the account/token and remove from source code. Store secrets/tokens/passwords in secret managers or secure vaults.",
93-
date=datetime.today().strftime("%Y-%m-%d"),
94+
date=timezone.now().strftime("%Y-%m-%d"),
9495
verified=False,
9596
active=True,
9697
is_mitigated=False,
@@ -150,7 +151,7 @@ def version_0_22_0(self, line, test):
150151
description=description,
151152
severity="High",
152153
mitigation="Reset the account/token and remove from source code. Store secrets/tokens/passwords in secret managers or secure vaults.",
153-
date=datetime.today().strftime("%Y-%m-%d"),
154+
date=timezone.now().strftime("%Y-%m-%d"),
154155
verified=False,
155156
active=True,
156157
is_mitigated=False,

ruff.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ select = [
4242
"A",
4343
"COM",
4444
"C4",
45-
"DTZ003", "DTZ004", "DTZ012", "DTZ901",
45+
"DTZ002", "DTZ003", "DTZ004", "DTZ01", "DTZ901",
4646
"T10",
4747
"DJ003", "DJ01",
4848
"EM",

unittests/test_flush_auditlog.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import logging
2-
from datetime import UTC, date, datetime
2+
from datetime import UTC, datetime
33

44
from auditlog.models import LogEntry
55
from dateutil.relativedelta import relativedelta
66
from django.test import override_settings
7+
from django.utils import timezone
78

89
from dojo.models import Finding
910
from dojo.tasks import flush_auditlog
@@ -25,9 +26,9 @@ def test_flush_auditlog_disabled(self):
2526

2627
@override_settings(AUDITLOG_FLUSH_RETENTION_PERIOD=0)
2728
def test_delete_all_entries(self):
28-
entries_before = LogEntry.objects.filter(timestamp__date__lt=date.today()).count()
29+
entries_before = LogEntry.objects.filter(timestamp__date__lt=timezone.now().date()).count()
2930
flush_auditlog()
30-
entries_after = LogEntry.objects.filter(timestamp__date__lt=date.today()).count()
31+
entries_after = LogEntry.objects.filter(timestamp__date__lt=timezone.now().date()).count()
3132
# we have three old log entries in our testdata
3233
self.assertEqual(entries_before - 3, entries_after)
3334

unittests/tools/test_hydra_parser.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
from datetime import date, datetime
1+
from datetime import datetime
2+
3+
from dateutil.tz import UTC
4+
from django.utils import timezone
25

36
from dojo.models import Finding, Test
47
from dojo.tools.hydra.parser import HydraParser
@@ -55,7 +58,7 @@ def test_hydra_parser_with_one_finding_and_missing_date_has_one_finding(self):
5558

5659
self.__assertFindingEquals(
5760
finding,
58-
date.today(),
61+
timezone.now().date(),
5962
"127.0.0.1",
6063
"9999",
6164
"bill@example.com",

0 commit comments

Comments
 (0)