Skip to content

Commit 1fec74b

Browse files
authored
fix(ruff): Findings from upgrade to 0.6.1 (#10775)
1 parent 14c53af commit 1fec74b

File tree

13 files changed

+45
-70
lines changed

13 files changed

+45
-70
lines changed

dojo/finding/helper.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -573,18 +573,18 @@ def fix_loop_duplicates():
573573
loop_count = len(candidates)
574574

575575
if loop_count > 0:
576-
deduplicationLogger.info("Identified %d Findings with Loops" % len(candidates))
576+
deduplicationLogger.info(f"Identified {len(candidates)} Findings with Loops")
577577
for find_id in candidates.values_list("id", flat=True):
578578
removeLoop(find_id, 50)
579579

580580
new_originals = Finding.objects.filter(duplicate_finding__isnull=True, duplicate=True)
581581
for f in new_originals:
582-
deduplicationLogger.info("New Original: %d " % f.id)
582+
deduplicationLogger.info(f"New Original: {f.id}")
583583
f.duplicate = False
584584
super(Finding, f).save()
585585

586586
loop_count = Finding.objects.filter(duplicate_finding__isnull=False, original_finding__isnull=False).count()
587-
deduplicationLogger.info("%d Finding found which still has Loops, please run fix loop duplicates again" % loop_count)
587+
deduplicationLogger.info(f"{loop_count} Finding found which still has Loops, please run fix loop duplicates again")
588588
return loop_count
589589

590590

dojo/finding/views.py

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2862,9 +2862,8 @@ def finding_bulk_update_all(request, pid=None):
28622862
messages.add_message(
28632863
request,
28642864
messages.WARNING,
2865-
("Skipped simple risk acceptance of %i findings, "
2866-
"simple risk acceptance is disabled on the related products")
2867-
% skipped_risk_accept_count,
2865+
(f"Skipped simple risk acceptance of {skipped_risk_accept_count} findings, "
2866+
"simple risk acceptance is disabled on the related products"),
28682867
extra_tags="alert-warning",
28692868
)
28702869

@@ -2963,8 +2962,7 @@ def finding_bulk_update_all(request, pid=None):
29632962

29642963
if grouped:
29652964
add_success_message_to_response(
2966-
"Grouped %d findings into %d (%d newly created) finding groups"
2967-
% (grouped, len(finding_groups), groups_created),
2965+
f"Grouped {grouped} findings into {len(finding_groups)} ({groups_created} newly created) finding groups",
29682966
)
29692967

29702968
if skipped:
@@ -3042,15 +3040,10 @@ def finding_bulk_update_all(request, pid=None):
30423040
success_count += 1
30433041

30443042
for error_message, error_count in error_counts.items():
3045-
add_error_message_to_response(
3046-
"%i finding groups could not be pushed to JIRA: %s"
3047-
% (error_count, error_message),
3048-
)
3043+
add_error_message_to_response("{error_count} finding groups could not be pushed to JIRA: {error_message}")
30493044

30503045
if success_count > 0:
3051-
add_success_message_to_response(
3052-
"%i finding groups pushed to JIRA successfully" % success_count,
3053-
)
3046+
add_success_message_to_response(f"{success_count} finding groups pushed to JIRA successfully")
30543047
groups_pushed_to_jira = True
30553048

30563049
# refresh from db
@@ -3102,15 +3095,10 @@ def finding_bulk_update_all(request, pid=None):
31023095
success_count += 1
31033096

31043097
for error_message, error_count in error_counts.items():
3105-
add_error_message_to_response(
3106-
"%i findings could not be pushed to JIRA: %s"
3107-
% (error_count, error_message),
3108-
)
3098+
add_error_message_to_response(f"{error_count} findings could not be pushed to JIRA: {error_message}")
31093099

31103100
if success_count > 0:
3111-
add_success_message_to_response(
3112-
"%i findings pushed to JIRA successfully" % success_count,
3113-
)
3101+
add_success_message_to_response(f"{success_count} findings pushed to JIRA successfully")
31143102

31153103
if updated_find_count > 0:
31163104
messages.add_message(

dojo/management/commands/jira_status_reconciliation.py

Lines changed: 15 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ def jira_status_reconciliation(*args, **kwargs):
5959
issue_from_jira = jira_helper.get_jira_issue_from_jira(find)
6060

6161
if not issue_from_jira:
62-
message = "%s;%s/finding/%d;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;unable to retrieve JIRA Issue;%s" % \
63-
(find.jira_issue.jira_key, settings.SITE_URL, find.id, find.status(), None, None, None, None,
62+
message = "{};{}/finding/{};{};{};{};{};{};{};{};{};{};{};{};unable to retrieve JIRA Issue;{}".format(
63+
find.jira_issue.jira_key, settings.SITE_URL, find.id, find.status(), None, None, None, None,
6464
find.jira_issue.jira_change, None, find.last_status_update, None, find.last_reviewed, None, "error")
6565
messages.append(message)
6666
logger.info(message)
@@ -80,27 +80,27 @@ def jira_status_reconciliation(*args, **kwargs):
8080
flag1, flag2, flag3 = None, None, None
8181

8282
if mode == "reconcile" and not find.last_status_update:
83-
message = "%s; %s/finding/%d;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;skipping finding with no last_status_update;%s" % \
84-
(find.jira_issue.jira_key, settings.SITE_URL, find.id, find.status(), None, None, None, None,
83+
message = "{}; {}/finding/{};{};{};{};{};{};{};{};{};{};{};{};skipping finding with no last_status_update;{}".format(
84+
find.jira_issue.jira_key, settings.SITE_URL, find.id, find.status(), None, None, None, None,
8585
find.jira_issue.jira_change, issue_from_jira.fields.updated, find.last_status_update, issue_from_jira.fields.updated, find.last_reviewed, issue_from_jira.fields.updated, "skipped")
8686
messages.append(message)
8787
logger.info(message)
8888
continue
8989
elif find.risk_accepted:
90-
message = "%s; %s/finding/%d;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%sskipping risk accepted findings;%s" % \
91-
(find.jira_issue.jira_key, settings.SITE_URL, find.id, find.status(), resolution_name, None, None, None,
90+
message = "{}; {}/finding/{};{};{};{};{};{};{};{};{};{};{};{}skipping risk accepted findings;{}".format(
91+
find.jira_issue.jira_key, settings.SITE_URL, find.id, find.status(), resolution_name, None, None, None,
9292
find.jira_issue.jira_change, issue_from_jira.fields.updated, find.last_status_update, issue_from_jira.fields.updated, find.last_reviewed, issue_from_jira.fields.updated, "skipped")
9393
messages.append(message)
9494
logger.info(message)
9595
elif jira_helper.issue_from_jira_is_active(issue_from_jira) and find.active:
96-
message = "%s; %s/finding/%d;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;no action both sides are active/open;%s" % \
97-
(find.jira_issue.jira_key, settings.SITE_URL, find.id, find.status(), resolution_name, None, None, None,
96+
message = "{}; {}/finding/{};{};{};{};{};{};{};{};{};{};{};{};no action both sides are active/open;{}".format(
97+
find.jira_issue.jira_key, settings.SITE_URL, find.id, find.status(), resolution_name, None, None, None,
9898
find.jira_issue.jira_change, issue_from_jira.fields.updated, find.last_status_update, issue_from_jira.fields.updated, find.last_reviewed, issue_from_jira.fields.updated, "equal")
9999
messages.append(message)
100100
logger.info(message)
101101
elif not jira_helper.issue_from_jira_is_active(issue_from_jira) and not find.active:
102-
message = "%s; %s/finding/%d;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;no action both sides are inactive/closed;%s" % \
103-
(find.jira_issue.jira_key, settings.SITE_URL, find.id, find.status(), resolution_name, None, None, None,
102+
message = "{}; {}/finding/{};{};{};{};{};{};{};{};{};{};{};{};no action both sides are inactive/closed;{}".format(
103+
find.jira_issue.jira_key, settings.SITE_URL, find.id, find.status(), resolution_name, None, None, None,
104104
find.jira_issue.jira_change, issue_from_jira.fields.updated, find.last_status_update, issue_from_jira.fields.updated, find.last_reviewed, issue_from_jira.fields.updated, "equal")
105105
messages.append(message)
106106
logger.info(message)
@@ -148,15 +148,11 @@ def jira_status_reconciliation(*args, **kwargs):
148148

149149
status_changed = jira_helper.process_resolution_from_jira(find, resolution_id, resolution_name, assignee_name, issue_from_jira.fields.updated, find.jira_issue) if not dryrun else "dryrun"
150150
if status_changed:
151-
message = "%s; %s/finding/%d;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s finding in defectdojo;%s" % \
152-
(find.jira_issue.jira_key, settings.SITE_URL, find.id, find.status(), resolution_name, flag1, flag2, flag3,
153-
find.jira_issue.jira_change, issue_from_jira.fields.updated, find.last_status_update, issue_from_jira.fields.updated, find.last_reviewed, issue_from_jira.fields.updated, message_action, status_changed)
151+
message = f"{find.jira_issue.jira_key}; {settings.SITE_URL}/finding/{find.id};{find.status()};{resolution_name};{flag1};{flag2};{flag3};{find.jira_issue.jira_change};{issue_from_jira.fields.updated};{find.last_status_update};{issue_from_jira.fields.updated};{find.last_reviewed};{issue_from_jira.fields.updated};{message_action} finding in defectdojo;{status_changed}"
154152
messages.append(message)
155153
logger.info(message)
156154
else:
157-
message = "%s; %s/finding/%d;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;no changes made from jira resolution;%s" % \
158-
(find.jira_issue.jira_key, settings.SITE_URL, find.id, find.status(), resolution_name, flag1, flag2, flag3,
159-
find.jira_issue.jira_change, issue_from_jira.fields.updated, find.last_status_update, issue_from_jira.fields.updated, find.last_reviewed, issue_from_jira.fields.updated, status_changed)
155+
message = f"{find.jira_issue.jira_key}; {settings.SITE_URL}/finding/{find.id};{find.status()};{resolution_name};{flag1};{flag2};{flag3};{find.jira_issue.jira_change};{issue_from_jira.fields.updated};{find.last_status_update};{issue_from_jira.fields.updated};{find.last_reviewed};{issue_from_jira.fields.updated};no changes made from jira resolution;{status_changed}"
160156
messages.append(message)
161157
logger.info(message)
162158

@@ -171,24 +167,18 @@ def jira_status_reconciliation(*args, **kwargs):
171167
status_changed = jira_helper.push_status_to_jira(find, jira_instance, jira, issue_from_jira, save=True) if not dryrun else "dryrun"
172168

173169
if status_changed:
174-
message = "%s; %s/finding/%d;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s jira issue;%s;" % \
175-
(find.jira_issue.jira_key, settings.SITE_URL, find.id, find.status(), resolution_name, flag1, flag2, flag3, message_action,
176-
find.jira_issue.jira_change, issue_from_jira.fields.updated, find.last_status_update, issue_from_jira.fields.updated, find.last_reviewed, issue_from_jira.fields.updated, status_changed)
170+
message = f"{find.jira_issue.jira_key}; {settings.SITE_URL}/finding/{find.id};{find.status()};{resolution_name};{flag1};{flag2};{flag3};{message_action};{find.jira_issue.jira_change};{issue_from_jira.fields.updated};{find.last_status_update};{issue_from_jira.fields.updated};{find.last_reviewed};{issue_from_jira.fields.updated} jira issue;{status_changed};"
177171
messages.append(message)
178172
logger.info(message)
179173
else:
180174
if status_changed is None:
181175
status_changed = "Error"
182-
message = "%s; %s/finding/%d;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;no changes made while pushing status to jira;%s" % \
183-
(find.jira_issue.jira_key, settings.SITE_URL, find.id, find.status(), resolution_name, flag1, flag2, flag3,
184-
find.jira_issue.jira_change, issue_from_jira.fields.updated, find.last_status_update, issue_from_jira.fields.updated, find.last_reviewed, issue_from_jira.fields.updated, status_changed)
176+
message = f"{find.jira_issue.jira_key}; {settings.SITE_URL}/finding/{find.id};{find.status()};{resolution_name};{flag1};{flag2};{flag3};{find.jira_issue.jira_change};{issue_from_jira.fields.updated};{find.last_status_update};{issue_from_jira.fields.updated};{find.last_reviewed};{issue_from_jira.fields.updated};no changes made while pushing status to jira;{status_changed}"
185177
messages.append(message)
186178

187179
logger.info(message)
188180
else:
189-
message = "%s; %s/finding/%d;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;unable to determine source of truth;%s" % \
190-
(find.jira_issue.jira_key, settings.SITE_URL, find.id, find.status(), resolution_name, flag1, flag2, flag3,
191-
find.jira_issue.jira_change, issue_from_jira.fields.updated, find.last_status_update, issue_from_jira.fields.updated, find.last_reviewed, issue_from_jira.fields.updated, status_changed)
181+
message = f"{find.jira_issue.jira_key}; {settings.SITE_URL}/finding/{find.id};{find.status()};{resolution_name};{flag1};{flag2};{flag3};{find.jira_issue.jira_change};{issue_from_jira.fields.updated};{find.last_status_update};{issue_from_jira.fields.updated};{find.last_reviewed};{issue_from_jira.fields.updated};unable to determine source of truth;{status_changed}"
192182
messages.append(message)
193183

194184
logger.info(message)

dojo/models.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1476,7 +1476,7 @@ class Meta:
14761476
]
14771477

14781478
def __str__(self):
1479-
return "Engagement %i: %s (%s)" % (self.id if id else 0, self.name or "",
1479+
return "Engagement {}: {} ({})".format(self.id if id else 0, self.name or "",
14801480
self.target_start.strftime(
14811481
"%b %d, %Y"))
14821482

@@ -2244,7 +2244,7 @@ class Meta:
22442244
ordering = ("test_import", "action", "finding")
22452245

22462246
def __str__(self):
2247-
return "%i: %s" % (self.finding.id, self.action)
2247+
return f"{self.finding.id}: {self.action}"
22482248

22492249

22502250
class Finding(models.Model):

dojo/risk_acceptance/helper.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -175,30 +175,30 @@ def expiration_handler(*args, **kwargs):
175175

176176

177177
def expiration_message_creator(risk_acceptance, heads_up_days=0):
178-
return "Risk acceptance [(%s)|%s] with %i findings has expired" % \
179-
(escape_for_jira(risk_acceptance.name),
178+
return "Risk acceptance [({})|{}] with {} findings has expired".format(
179+
escape_for_jira(risk_acceptance.name),
180180
get_full_url(reverse("view_risk_acceptance", args=(risk_acceptance.engagement.id, risk_acceptance.id))),
181181
len(risk_acceptance.accepted_findings.all()))
182182

183183

184184
def expiration_warning_message_creator(risk_acceptance, heads_up_days=0):
185-
return "Risk acceptance [(%s)|%s] with %i findings will expire in %i days" % \
186-
(escape_for_jira(risk_acceptance.name),
185+
return "Risk acceptance [({})|{}] with {} findings will expire in {} days".format(
186+
escape_for_jira(risk_acceptance.name),
187187
get_full_url(reverse("view_risk_acceptance", args=(risk_acceptance.engagement.id, risk_acceptance.id))),
188188
len(risk_acceptance.accepted_findings.all()), heads_up_days)
189189

190190

191191
def reinstation_message_creator(risk_acceptance, heads_up_days=0):
192-
return "Risk acceptance [(%s)|%s] with %i findings has been reinstated (expires on %s)" % \
193-
(escape_for_jira(risk_acceptance.name),
192+
return "Risk acceptance [({})|{}] with {} findings has been reinstated (expires on {})".format(
193+
escape_for_jira(risk_acceptance.name),
194194
get_full_url(reverse("view_risk_acceptance", args=(risk_acceptance.engagement.id, risk_acceptance.id))),
195195
len(risk_acceptance.accepted_findings.all()), timezone.localtime(risk_acceptance.expiration_date).strftime("%b %d, %Y"))
196196

197197

198198
def accepted_message_creator(risk_acceptance, heads_up_days=0):
199199
if risk_acceptance:
200-
return "Finding has been added to risk acceptance [(%s)|%s] with %i findings (expires on %s)" % \
201-
(escape_for_jira(risk_acceptance.name),
200+
return "Finding has been added to risk acceptance [({})|{}] with {} findings (expires on {})".format(
201+
escape_for_jira(risk_acceptance.name),
202202
get_full_url(reverse("view_risk_acceptance", args=(risk_acceptance.engagement.id, risk_acceptance.id))),
203203
len(risk_acceptance.accepted_findings.all()), timezone.localtime(risk_acceptance.expiration_date).strftime("%b %d, %Y"))
204204
else:

dojo/templatetags/display_tags.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ def datediff_time(date1, date2):
338338
date_str = ""
339339
diff = dateutil.relativedelta.relativedelta(date2, date1)
340340
attrs = ["years", "months", "days"]
341-
human_date = ["%d %s" % (getattr(diff, attr), (getattr(diff, attr) > 1 and attr) or attr[:-1])
341+
human_date = [f"{getattr(diff, attr)} {(getattr(diff, attr) > 1 and attr) or attr[:-1]}"
342342
for attr in attrs if getattr(diff, attr)]
343343
for date_part in human_date:
344344
date_str = date_str + date_part + " "

dojo/tools/gitleaks/parser.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@ def get_finding_legacy(self, issue, test, dupes):
6161
description += "**Reason:** " + reason + "\n"
6262
description += "**Path:** " + file_path + "\n"
6363
if "lineNumber" in issue:
64-
description += "**Line:** %i\n" % issue["lineNumber"]
64+
description += f"**Line:** {issue['lineNumber']}\n"
6565
line = issue["lineNumber"]
6666
if "operation" in issue:
67-
description += "**Operation:** " + issue["operation"] + "\n"
67+
description += f"**Operation:** {issue['operation']}\n"
6868
if "leakURL" in issue:
6969
description += (
7070
"**Leak URL:** ["

dojo/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1876,9 +1876,9 @@ def _notification_title_for_finding(finding, kind, sla_age):
18761876
period = "day"
18771877
if abs_sla_age > 1:
18781878
period = "days"
1879-
title += "SLA breached by %d %s! Overdue notice" % (abs_sla_age, period)
1879+
title += f"SLA breached by {abs_sla_age} {period}! Overdue notice"
18801880
elif kind == "prebreach":
1881-
title += "SLA pre-breach warning - %d day(s) left" % (sla_age)
1881+
title += f"SLA pre-breach warning - {sla_age} day(s) left"
18821882
elif kind == "breaching":
18831883
title += "SLA is breaching today"
18841884

requirements-lint.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ruff==0.5.7
1+
ruff==0.6.1

ruff.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ select = [
8080
"RUF013",
8181
"RUF019",
8282
"RUF021",
83-
"RUF025",
8483
]
8584
ignore = ["E501", "E722"]
8685

0 commit comments

Comments
 (0)