| 37 | # ------------------------------------------------------------------ # |
| 38 | |
| 39 | def test_to_json(self): |
| 40 | reporter = Reporter([self.test_issue], "json") |
| 41 | output = reporter.to_json() |
| 42 | |
| 43 | output_json = json.loads(output) |
| 44 | |
| 45 | # Check issues summary |
| 46 | self.assertEqual(output_json["summary"]["issue_count"], 1) |
| 47 | |
| 48 | # Check issue fields |
| 49 | issue_json = output_json["issues"][0] |
| 50 | self.assertEqual(issue_json["rule_id"], self.test_issue.rule_id) |
| 51 | self.assertEqual(issue_json["description"], self.test_issue.description) |
| 52 | self.assertEqual(issue_json["file_path"], self.test_issue.file_path) |
| 53 | self.assertEqual(issue_json["line_number"], self.test_issue.line_number) |
| 54 | self.assertEqual(issue_json["code"], self.test_issue.code) |
| 55 | self.assertEqual(issue_json["severity"], self.test_issue.severity) |
| 56 | self.assertEqual(issue_json["remediation"], self.test_issue.remediation) |
| 57 | |
| 58 | def test_to_json_issue_count_matches_actual_issues(self): |
| 59 | issues = [_make_issue(rule_id=f"PY{i:03d}") for i in range(5)] |