Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,8 @@ public class MetricsTest {
private static final String DUPLICATED_LINES_DENSITY = "duplicated_lines_density";
private static final String EXECUTABLE_LINES_DATA = "executable_lines_data";
private static final String FILE_COMPLEXITY = "file_complexity";
private static final String FILE_COMPLEXITY_DISTRIBUTION = "file_complexity_distribution";
private static final String FILES = "files";
private static final String FUNCTION_COMPLEXITY = "function_complexity";
private static final String FUNCTION_COMPLEXITY_DISTRIBUTION = "function_complexity_distribution";
private static final String FUNCTIONS = "functions";
private static final String LINES = "lines";
private static final String NCLOC = "ncloc";
Expand Down Expand Up @@ -97,9 +95,7 @@ public void project_level() {
assertThat(getProjectMeasureAsDouble(COMPLEXITY)).isEqualTo(3.0, OFFSET);
assertThat(getProjectMeasureAsDouble(COGNITIVE_COMPLEXITY)).isEqualTo(3.0, OFFSET);
assertThat(getProjectMeasureAsDouble(FUNCTION_COMPLEXITY)).isNull();
assertThat(getProjectMeasure(FUNCTION_COMPLEXITY_DISTRIBUTION).getValue()).isEqualTo("1=0;2=1;4=0;6=0;8=0;10=0;12=0;20=0;30=0");
assertThat(getProjectMeasureAsDouble(FILE_COMPLEXITY)).isEqualTo(1.5, OFFSET);
assertThat(getProjectMeasure(FILE_COMPLEXITY_DISTRIBUTION).getValue()).isEqualTo("0=2;5=0;10=0;20=0;30=0;60=0;90=0");
// Duplication
assertThat(getProjectMeasureAsDouble(DUPLICATED_LINES)).isEqualTo(0.0, OFFSET);
assertThat(getProjectMeasureAsDouble(DUPLICATED_BLOCKS)).isEqualTo(0.0, OFFSET);
Expand Down Expand Up @@ -128,9 +124,7 @@ public void directory_level() {
assertThat(getDirectoryMeasureAsDouble(COMPLEXITY)).isEqualTo(3.0, OFFSET);
assertThat(getDirectoryMeasureAsDouble(COGNITIVE_COMPLEXITY)).isEqualTo(3.0, OFFSET);
assertThat(getDirectoryMeasureAsDouble(FUNCTION_COMPLEXITY)).isNull();
assertThat(getDirectoryMeasure(FUNCTION_COMPLEXITY_DISTRIBUTION).getValue()).isEqualTo("1=0;2=1;4=0;6=0;8=0;10=0;12=0;20=0;30=0");
assertThat(getDirectoryMeasureAsDouble(FILE_COMPLEXITY)).isEqualTo(1.5, OFFSET);
assertThat(getDirectoryMeasure(FILE_COMPLEXITY_DISTRIBUTION).getValue()).isEqualTo("0=2;5=0;10=0;20=0;30=0;60=0;90=0");
// Duplication
assertThat(getDirectoryMeasureAsDouble(DUPLICATED_LINES)).isEqualTo(0.0, OFFSET);
assertThat(getDirectoryMeasureAsDouble(DUPLICATED_BLOCKS)).isEqualTo(0.0, OFFSET);
Expand All @@ -156,9 +150,7 @@ public void file_level() {
assertThat(getFileMeasureAsDouble(COMPLEXITY)).isEqualTo(2.0, OFFSET);
assertThat(getFileMeasureAsDouble(COGNITIVE_COMPLEXITY)).isEqualTo(1.0, OFFSET);
assertThat(getFileMeasureAsDouble(FUNCTION_COMPLEXITY)).isNull();
assertThat(getFileMeasureAsDouble(FUNCTION_COMPLEXITY_DISTRIBUTION)).isNull();
assertThat(getFileMeasureAsDouble(FILE_COMPLEXITY)).isEqualTo(2.0, OFFSET);
assertThat(getFileMeasureAsDouble(FILE_COMPLEXITY_DISTRIBUTION)).isNull();
// Duplication
assertThat(getFileMeasureAsInt(DUPLICATED_LINES)).isZero();
assertThat(getFileMeasureAsInt(DUPLICATED_BLOCKS)).isZero();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
import org.sonar.api.batch.sensor.SensorContext;
import org.sonar.api.batch.sensor.issue.NewIssue;
import org.sonar.api.batch.sensor.issue.NewIssueLocation;
import org.sonar.api.ce.measure.RangeDistributionBuilder;
import org.sonar.api.issue.NoSonarFilter;
import org.sonar.api.measures.CoreMetrics;
import org.sonar.api.measures.FileLinesContext;
Expand Down Expand Up @@ -97,7 +96,7 @@ private void scanFile(InputFile inputFile) {
saveMeasures(inputFile, visitorContext);
} catch (RecognitionException e) {
visitorContext = new PythonVisitorContext(pythonFile, e);
LOG.error("Unable to parse file: " + inputFile.absolutePath());
LOG.error("Unable to parse file: " + inputFile.toString());
LOG.error(e.getMessage());
context.newAnalysisError()
.onFile(inputFile)
Expand Down Expand Up @@ -163,9 +162,6 @@ private void saveMeasures(InputFile inputFile, PythonVisitorContext visitorConte
cpdAnalyzer.pushCpdTokens(inputFile, visitorContext);
noSonarFilter.noSonarInFile(inputFile, fileLinesVisitor.getLinesWithNoSonar());

saveFilesComplexityDistribution(inputFile, fileMetrics);
saveFunctionsComplexityDistribution(inputFile, fileMetrics);

Set<Integer> linesOfCode = fileLinesVisitor.getLinesOfCode();
saveMetricOnFile(inputFile, CoreMetrics.NCLOC, linesOfCode.size());
saveMetricOnFile(inputFile, CoreMetrics.STATEMENTS, fileMetrics.numberOfStatements());
Expand Down Expand Up @@ -193,27 +189,4 @@ private void saveMetricOnFile(InputFile inputFile, Metric<Integer> metric, Integ
.save();
}

private void saveFunctionsComplexityDistribution(InputFile inputFile, FileMetrics fileMetrics) {
RangeDistributionBuilder complexityDistribution = new RangeDistributionBuilder(FUNCTIONS_DISTRIB_BOTTOM_LIMITS);
for (Integer functionComplexity : fileMetrics.functionComplexities()) {
complexityDistribution.add(functionComplexity);
}

context.<String>newMeasure()
.on(inputFile)
.forMetric(CoreMetrics.FUNCTION_COMPLEXITY_DISTRIBUTION)
.withValue(complexityDistribution.build())
.save();
}

private void saveFilesComplexityDistribution(InputFile inputFile, FileMetrics fileMetrics) {
RangeDistributionBuilder complexityDistribution = new RangeDistributionBuilder(FILES_DISTRIB_BOTTOM_LIMITS);
complexityDistribution.add(fileMetrics.complexity());
context.<String>newMeasure()
.on(inputFile)
.forMetric(CoreMetrics.FILE_COMPLEXITY_DISTRIBUTION)
.withValue(complexityDistribution.build())
.save();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public static PythonFile create(InputFile inputFile) {

@Override
public String fileName() {
return inputFile.path().getFileName().toString();
return inputFile.filename();
}

public InputFile inputFile() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ private static void saveMeasures(Map<InputFile, NewCoverage> coverageMeasures, H
InputFile inputFile = entry.getKey();
coveredFiles.add(inputFile);
if (LOG.isDebugEnabled()) {
LOG.debug("Saving coverage measures for file '{}'", inputFile.relativePath());
LOG.debug("Saving coverage measures for file '{}'", inputFile.toString());
}
entry.getValue()
.save();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
import org.sonar.api.ExtensionPoint;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.batch.fs.FileSystem;
import org.sonar.api.config.Settings;
import org.sonar.api.config.Configuration;

@ScannerSide
@ExtensionPoint
Expand All @@ -33,14 +33,14 @@ public class PylintConfiguration {
public static final String PYLINT_CONFIG_KEY = "sonar.python.pylint_config";
public static final String PYLINT_KEY = "sonar.python.pylint";

private final Settings conf;
private final Configuration conf;

public PylintConfiguration(Settings conf) {
public PylintConfiguration(Configuration conf) {
this.conf = conf;
}

public String getPylintConfigPath(FileSystem fileSystem) {
String configPath = conf.getString(PylintConfiguration.PYLINT_CONFIG_KEY);
String configPath = conf.get(PylintConfiguration.PYLINT_CONFIG_KEY).orElse("");
if (StringUtils.isEmpty(configPath)) {
return null;
}
Expand All @@ -53,7 +53,7 @@ public String getPylintConfigPath(FileSystem fileSystem) {
}

public String getPylintPath() {
return conf.getString(PylintConfiguration.PYLINT_KEY);
return conf.get(PylintConfiguration.PYLINT_KEY).orElse(null);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ PylintIssuesAnalyzer createAnalyzer(String pylintConfigPath, String pylintPath)
private void analyzeFile(SensorContext context, InputFile file, File out) throws IOException {
FileSystem fileSystem = context.fileSystem();

List<Issue> issues = analyzer.analyze(file.absolutePath(), fileSystem.encoding(), out);
List<Issue> issues = analyzer.analyze(file.uri().getPath(), fileSystem.encoding(), out);

for (Issue pylintIssue : issues) {
ActiveRule rule = context.activeRules().find(RuleKey.of(PylintRuleRepository.REPOSITORY_KEY, pylintIssue.getRuleId()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,20 @@
import org.junit.Before;
import org.junit.Test;
import org.sonar.api.batch.fs.internal.DefaultFileSystem;
import org.sonar.api.config.internal.ConfigurationBridge;
import org.sonar.api.config.internal.MapSettings;
import org.sonar.api.config.Settings;

import static org.assertj.core.api.Assertions.assertThat;

public class PylintConfigurationTest {

private Settings settings;
private MapSettings settings;
private PylintConfiguration pylintConfiguration;

@Before
public void setUp() {
settings = new MapSettings();
pylintConfiguration = new PylintConfiguration(settings);
pylintConfiguration = new PylintConfiguration(new ConfigurationBridge(settings));
}

@Test
Expand Down