Skip to content

Commit ff2289e

Browse files
pynicolasalban-auzeill
authored andcommitted
SONARPY-235 Filter extensions for SonarLint
1 parent 6f09515 commit ff2289e

2 files changed

Lines changed: 22 additions & 10 deletions

File tree

sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonPlugin.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@
2121

2222
import org.sonar.api.Plugin;
2323
import org.sonar.api.PropertyType;
24+
import org.sonar.api.SonarProduct;
2425
import org.sonar.api.config.PropertyDefinition;
2526
import org.sonar.api.resources.Qualifiers;
27+
import org.sonar.api.utils.Version;
2628
import org.sonar.plugins.python.coverage.PythonCoverageSensor;
2729
import org.sonar.plugins.python.pylint.PylintConfiguration;
2830
import org.sonar.plugins.python.pylint.PylintImportSensor;
@@ -142,14 +144,16 @@ public void define(Context context) {
142144
PythonProfile.class,
143145

144146
PythonSquidSensor.class,
145-
new PythonRuleRepository(context.getSonarQubeVersion()),
146-
147-
PylintConfiguration.class,
148-
PylintSensor.class,
149-
PylintImportSensor.class,
150-
PylintRuleRepository.class,
151-
152-
PythonXUnitSensor.class);
147+
new PythonRuleRepository(context.getSonarQubeVersion()));
148+
149+
if (!context.getSonarQubeVersion().isGreaterThanOrEqual(Version.create(6, 0)) || context.getRuntime().getProduct() != SonarProduct.SONARLINT) {
150+
context.addExtensions(
151+
PylintConfiguration.class,
152+
PylintSensor.class,
153+
PylintImportSensor.class,
154+
PylintRuleRepository.class,
155+
PythonXUnitSensor.class);
156+
}
153157
}
154158

155159
}

sonar-python-plugin/src/test/java/org/sonar/plugins/python/PythonPluginTest.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
*/
2020
package org.sonar.plugins.python;
2121

22+
import java.util.List;
2223
import org.junit.Test;
2324
import org.sonar.api.Plugin;
2425
import org.sonar.api.SonarQubeSide;
@@ -32,10 +33,17 @@ public class PythonPluginTest {
3233

3334
@Test
3435
public void testGetExtensions() {
35-
SonarRuntime runtime = SonarRuntimeImpl.forSonarQube(Version.create(5, 6), SonarQubeSide.SERVER);
36+
Version v56 = Version.create(5, 6);
37+
Version v60 = Version.create(6, 0);
38+
assertThat(extensions(SonarRuntimeImpl.forSonarQube(v56, SonarQubeSide.SERVER))).hasSize(19);
39+
assertThat(extensions(SonarRuntimeImpl.forSonarQube(v60, SonarQubeSide.SERVER))).hasSize(19);
40+
assertThat(extensions(SonarRuntimeImpl.forSonarLint(v60))).hasSize(14);
41+
}
42+
43+
private List extensions(SonarRuntime runtime) {
3644
Plugin.Context context = new Plugin.Context(runtime);
3745
new PythonPlugin().define(context);
38-
assertThat(context.getExtensions()).hasSize(19);
46+
return context.getExtensions();
3947
}
4048

4149
}

0 commit comments

Comments
 (0)