Skip to content

Commit aae24f5

Browse files
authored
Fixed findings should be a list (#558)
1 parent 3f328a6 commit aae24f5

5 files changed

Lines changed: 20 additions & 20 deletions

File tree

src/codemodder/codemods/imported_call_modifier.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,13 @@ def leave_Call(self, original_node: cst.Call, updated_node: cst.Call):
7575
and true_name
7676
and true_name in self.matching_functions
7777
):
78-
findings = self.file_context.get_findings_for_location(line_number)
7978
self.changes_in_file.append(
8079
Change(
8180
lineNumber=line_number,
8281
description=self.change_description,
83-
finding=findings[0] if findings else None,
82+
findings=self.file_context.get_findings_for_location(
83+
line_number
84+
),
8485
)
8586
)
8687

src/codemodder/codemods/libcst_transformer.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,12 +120,11 @@ def add_dependency(self, dependency: Dependency):
120120

121121
def report_change(self, original_node, description: str | None = None):
122122
line_number = self.lineno_for_node(original_node)
123-
findings = self.file_context.get_findings_for_location(line_number)
124123
self.file_context.codemod_changes.append(
125124
Change(
126125
lineNumber=line_number,
127126
description=description or self.change_description,
128-
finding=findings[0] if findings else None,
127+
findings=self.file_context.get_findings_for_location(line_number),
129128
)
130129
)
131130

src/codemodder/codetf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class Change(BaseModel):
5252
diffSide: DiffSide = DiffSide.RIGHT
5353
properties: Optional[dict] = None
5454
packageActions: Optional[list[PackageAction]] = None
55-
finding: Optional[Finding] = None
55+
findings: Optional[list[Finding]] = None
5656

5757

5858
class AIMetadata(BaseModel):

tests/codemods/defectdojo/semgrep/test_avoid_insecure_deserialization.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ def test_yaml_load(self, tmpdir):
4646
)
4747

4848
assert changes is not None
49-
assert changes[0].changes[0].finding is not None
50-
assert changes[0].changes[0].finding.id == "1"
51-
assert changes[0].changes[0].finding.rule.id == RULE_ID
49+
assert changes[0].changes[0].findings is not None
50+
assert changes[0].changes[0].findings[0].id == "1"
51+
assert changes[0].changes[0].findings[0].rule.id == RULE_ID
5252

5353
@mock.patch("codemodder.codemods.api.FileContext.add_dependency")
5454
def test_pickle_load(self, adds_dependency, tmpdir):
@@ -80,9 +80,9 @@ def test_pickle_load(self, adds_dependency, tmpdir):
8080
adds_dependency.assert_called_once_with(Fickling)
8181

8282
assert changes is not None
83-
assert changes[0].changes[0].finding is not None
84-
assert changes[0].changes[0].finding.id == "2"
85-
assert changes[0].changes[0].finding.rule.id == RULE_ID
83+
assert changes[0].changes[0].findings is not None
84+
assert changes[0].changes[0].findings[0].id == "2"
85+
assert changes[0].changes[0].findings[0].rule.id == RULE_ID
8686

8787
@mock.patch("codemodder.codemods.api.FileContext.add_dependency")
8888
def test_pickle_and_yaml(self, adds_dependency, tmpdir):
@@ -128,12 +128,12 @@ def test_pickle_and_yaml(self, adds_dependency, tmpdir):
128128
adds_dependency.assert_called_once_with(Fickling)
129129

130130
assert changes is not None
131-
assert changes[0].changes[0].finding is not None
132-
assert changes[0].changes[0].finding.id == "4"
133-
assert changes[0].changes[0].finding.rule.id == RULE_ID
134-
assert changes[0].changes[1].finding is not None
135-
assert changes[0].changes[1].finding.id == "3"
136-
assert changes[0].changes[1].finding.rule.id == RULE_ID
131+
assert changes[0].changes[0].findings is not None
132+
assert changes[0].changes[0].findings[0].id == "4"
133+
assert changes[0].changes[0].findings[0].rule.id == RULE_ID
134+
assert changes[0].changes[1].findings is not None
135+
assert changes[0].changes[1].findings[0].id == "3"
136+
assert changes[0].changes[1].findings[0].rule.id == RULE_ID
137137

138138
@mock.patch("codemodder.codemods.api.FileContext.add_dependency")
139139
def test_pickle_loads(self, adds_dependency, tmpdir):

tests/codemods/defectdojo/semgrep/test_django_secure_set_cookie.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ def test_simple(self, tmpdir):
3737
)
3838

3939
assert changes is not None
40-
assert changes[0].changes[0].finding is not None
41-
assert changes[0].changes[0].finding.id == "1"
40+
assert changes[0].changes[0].findings is not None
41+
assert changes[0].changes[0].findings[0].id == "1"
4242
assert (
43-
changes[0].changes[0].finding.rule.id
43+
changes[0].changes[0].findings[0].rule.id
4444
== "python.django.security.audit.secure-cookies.django-secure-set-cookie"
4545
)

0 commit comments

Comments
 (0)