Skip to content

Commit c2ab0f4

Browse files
authored
SONARPY-1846 Fix analysis warnings not being concateneted correctly with newline delimiters (#1807)
1 parent 8d330cb commit c2ab0f4

File tree

4 files changed

+11
-7
lines changed

4 files changed

+11
-7
lines changed

sonar-python-plugin/src/main/java/org/sonar/plugins/python/coverage/CoberturaParser.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import java.io.File;
2323
import java.util.ArrayList;
2424
import java.util.Collections;
25-
import java.util.HashSet;
25+
import java.util.LinkedHashSet;
2626
import java.util.List;
2727
import java.util.Map;
2828
import java.util.Set;
@@ -44,7 +44,7 @@ public class CoberturaParser {
4444

4545
private static final Logger LOG = LoggerFactory.getLogger(CoberturaParser.class);
4646

47-
private final Set<String> errors = new HashSet<>();
47+
private final Set<String> errors = new LinkedHashSet<>();
4848
private int unresolvedFilenameCount;
4949

5050
public void parseReport(File xmlFile, SensorContext context, final Map<InputFile, NewCoverage> coverageData) throws XMLStreamException {

sonar-python-plugin/src/main/java/org/sonar/plugins/python/coverage/PythonCoverageSensor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ private Map<InputFile, NewCoverage> parseReport(File report, SensorContext conte
114114
CoberturaParser parser = new CoberturaParser();
115115
parser.parseReport(report, context, coverageMeasures);
116116
if (!parser.errors().isEmpty()) {
117-
String parseErrors = String.join("%n", parser.errors());
117+
String parseErrors = String.format(String.join("%n", parser.errors()));
118118
analysisWarnings.addUnique(String.format("The following error(s) occurred while trying to import coverage report:%n%s", parseErrors));
119119
}
120120
} catch (EmptyReportException e) {

sonar-python-plugin/src/test/java/org/sonar/plugins/python/coverage/PythonCoverageSensorTest.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -305,10 +305,13 @@ void should_do_nothing_on_empty_report() {
305305
void should_warn_if_source_is_not_directory() {
306306
settings.setProperty(PythonCoverageSensor.REPORT_PATHS_KEY, "coverage_source_invalid_directory.xml");
307307
coverageSensor.execute(context);
308-
File file = new File("src/test/resources/org/sonar/plugins/python/coverage-reports/sources/file1.py");
309-
String message = "Invalid directory path in 'source' element: " + file.getPath();
310-
assertThat(logTester.logs(Level.WARN)).contains(message);
311-
verify(analysisWarnings, times(1)).addUnique("The following error(s) occurred while trying to import coverage report:" + System.lineSeparator() + message);
308+
File file1 = new File("src/test/resources/org/sonar/plugins/python/coverage-reports/sources/file1.py");
309+
File file2 = new File("src/test/resources/org/sonar/plugins/python/coverage-reports/sources/file2.py");
310+
String message1 = "Invalid directory path in 'source' element: " + file1.getPath();
311+
String message2 = "Invalid directory path in 'source' element: " + file2.getPath();
312+
assertThat(logTester.logs(Level.WARN)).contains(message1);
313+
assertThat(logTester.logs(Level.WARN)).contains(message2);
314+
verify(analysisWarnings, times(1)).addUnique("The following error(s) occurred while trying to import coverage report:" + System.lineSeparator() + message1 + System.lineSeparator() + message2);
312315
}
313316

314317
@Test

sonar-python-plugin/src/test/resources/org/sonar/plugins/python/coverage-reports/coverage_source_invalid_directory.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd -->
55
<sources>
66
<source>src/test/resources/org/sonar/plugins/python/coverage-reports/sources/file1.py</source>
7+
<source>src/test/resources/org/sonar/plugins/python/coverage-reports/sources/file2.py</source>
78
</sources>
89
<packages></packages>
910
</coverage>

0 commit comments

Comments
 (0)