mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-15 02:59:33 +07:00
739 lines
21 KiB
Java
739 lines
21 KiB
Java
// Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
|
package com.jetbrains.python.intentions;
|
|
|
|
import com.intellij.codeInsight.CodeInsightSettings;
|
|
import com.intellij.codeInsight.intention.IntentionAction;
|
|
import com.intellij.psi.PsiFile;
|
|
import com.jetbrains.python.PyBundle;
|
|
import com.jetbrains.python.codeInsight.PyCodeInsightSettings;
|
|
import com.jetbrains.python.documentation.PyDocumentationSettings;
|
|
import com.jetbrains.python.documentation.docstrings.DocStringFormat;
|
|
import com.jetbrains.python.fixtures.PyTestCase;
|
|
import com.jetbrains.python.psi.LanguageLevel;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
import java.util.List;
|
|
|
|
/**
|
|
* @author Alexey.Ivanov
|
|
*/
|
|
public class PyIntentionTest extends PyTestCase {
|
|
@Nullable private PyDocumentationSettings myDocumentationSettings = null;
|
|
|
|
@Override
|
|
public void setUp() throws Exception {
|
|
super.setUp();
|
|
myDocumentationSettings = PyDocumentationSettings.getInstance(myFixture.getModule());
|
|
myDocumentationSettings.setFormat(DocStringFormat.REST);
|
|
}
|
|
|
|
@Override
|
|
protected void tearDown() throws Exception {
|
|
super.tearDown();
|
|
if (myDocumentationSettings != null) {
|
|
myDocumentationSettings.setFormat(DocStringFormat.PLAIN);
|
|
}
|
|
}
|
|
|
|
private void doTest(String hint) {
|
|
doTest(hint, false);
|
|
}
|
|
|
|
private void doTest(String hint, LanguageLevel languageLevel) {
|
|
runWithLanguageLevel(languageLevel, () -> doTest(hint));
|
|
}
|
|
|
|
private void doTest(String hint, boolean ignoreWhiteSpaces) {
|
|
final PsiFile file = myFixture.configureByFile("intentions/" + getTestName(true) + ".py");
|
|
final IntentionAction action = myFixture.findSingleIntention(hint);
|
|
assertSdkRootsNotParsed(file);
|
|
myFixture.launchAction(action);
|
|
myFixture.checkResultByFile("intentions/" + getTestName(true) + "_after.py", ignoreWhiteSpaces);
|
|
}
|
|
|
|
/**
|
|
* Ensures that intention with given hint <i>is not</i> active.
|
|
*
|
|
* @param hint
|
|
*/
|
|
private void doNegativeTest(String hint) {
|
|
final PsiFile file = myFixture.configureByFile("intentions/" + getTestName(true) + ".py");
|
|
List<IntentionAction> ints = myFixture.filterAvailableIntentions(hint);
|
|
assertEmpty(ints);
|
|
assertSdkRootsNotParsed(file);
|
|
}
|
|
|
|
public void testConvertDictComp() {
|
|
doTest(PyBundle.message("INTN.convert.dict.comp.to"), LanguageLevel.PYTHON26);
|
|
}
|
|
|
|
public void testConvertSetLiteral() {
|
|
doTest(PyBundle.message("INTN.convert.set.literal.to"), LanguageLevel.PYTHON26);
|
|
}
|
|
|
|
public void testReplaceExceptPart() {
|
|
doTest(PyBundle.message("INTN.convert.except.to"), LanguageLevel.PYTHON30);
|
|
}
|
|
|
|
public void testConvertBuiltins() {
|
|
doTest(PyBundle.message("INTN.convert.builtin.import"), LanguageLevel.PYTHON30);
|
|
}
|
|
|
|
public void testRemoveLeadingU() {
|
|
doTest(PyBundle.message("INTN.remove.leading.$0", "U"), LanguageLevel.PYTHON30);
|
|
}
|
|
|
|
public void testRemoveLeadingF() {
|
|
doTest(PyBundle.message("INTN.remove.leading.$0", "F"), LanguageLevel.PYTHON35);
|
|
}
|
|
|
|
// PY-18972
|
|
public void testRemoveTrailingL() {
|
|
doTest(PyBundle.message("INTN.remove.trailing.l"), LanguageLevel.PYTHON30);
|
|
}
|
|
|
|
public void testReplaceOctalNumericLiteral() {
|
|
doTest(PyBundle.message("INTN.replace.octal.numeric.literal"), LanguageLevel.PYTHON30);
|
|
}
|
|
|
|
public void testReplaceListComprehensions() {
|
|
doTest(PyBundle.message("INTN.replace.list.comprehensions"), LanguageLevel.PYTHON30);
|
|
}
|
|
|
|
public void testReplaceRaiseStatement() {
|
|
doTest(PyBundle.message("INTN.replace.raise.statement"), LanguageLevel.PYTHON30);
|
|
}
|
|
|
|
public void testReplaceBackQuoteExpression() {
|
|
doTest(PyBundle.message("INTN.replace.backquote.expression"), LanguageLevel.PYTHON30);
|
|
}
|
|
|
|
/*
|
|
public void testReplaceMethod() {
|
|
doTest(PyBundle.message("INTN.replace.method"), LanguageLevel.PYTHON30);
|
|
}
|
|
*/
|
|
|
|
public void testSplitIf() {
|
|
doTest(PyBundle.message("INTN.split.if.text"));
|
|
}
|
|
|
|
public void testNegateComparison() {
|
|
doTest(PyBundle.message("INTN.negate.$0.to.$1", "<=", ">"));
|
|
}
|
|
|
|
public void testNegateComparison2() {
|
|
doTest(PyBundle.message("INTN.negate.$0.to.$1", ">", "<="));
|
|
}
|
|
|
|
public void testFlipComparison() {
|
|
doTest(PyBundle.message("INTN.flip.$0.to.$1", ">", "<"));
|
|
}
|
|
|
|
public void testReplaceListComprehensionWithFor() {
|
|
doTest(PyBundle.message("INTN.replace.list.comprehensions.with.for"));
|
|
}
|
|
|
|
public void testReplaceListComprehension2() { //PY-6731
|
|
doTest(PyBundle.message("INTN.replace.list.comprehensions.with.for"));
|
|
}
|
|
|
|
public void testJoinIf() {
|
|
doTest(PyBundle.message("INTN.join.if.text"));
|
|
}
|
|
|
|
public void testJoinIfElse() {
|
|
doNegativeTest(PyBundle.message("INTN.join.if.text"));
|
|
}
|
|
|
|
public void testJoinIfBinary() { //PY-4697
|
|
doTest(PyBundle.message("INTN.join.if.text"));
|
|
}
|
|
|
|
public void testJoinIfMultiStatements() { //PY-2970
|
|
doNegativeTest(PyBundle.message("INTN.join.if.text"));
|
|
}
|
|
|
|
public void testDictConstructorToLiteralForm() {
|
|
doTest(PyBundle.message("INTN.convert.dict.constructor.to.dict.literal"));
|
|
}
|
|
|
|
public void testDictLiteralFormToConstructor() {
|
|
doTest(PyBundle.message("INTN.convert.dict.literal.to.dict.constructor"));
|
|
}
|
|
|
|
public void testDictLiteralFormToConstructor1() {
|
|
doNegativeTest(PyBundle.message("INTN.convert.dict.literal.to.dict.constructor"));
|
|
}
|
|
|
|
public void testDictLiteralFormToConstructor2() { //PY-5157
|
|
doNegativeTest(PyBundle.message("INTN.convert.dict.literal.to.dict.constructor"));
|
|
}
|
|
|
|
public void testDictLiteralFormToConstructor3() {
|
|
doNegativeTest(PyBundle.message("INTN.convert.dict.literal.to.dict.constructor"));
|
|
}
|
|
|
|
public void testQuotedString() { //PY-2915
|
|
doTest(PyBundle.message("INTN.quoted.string.double.to.single"));
|
|
}
|
|
|
|
public void testQuotedStringDoubleSlash() { //PY-3295
|
|
doTest(PyBundle.message("INTN.quoted.string.single.to.double"));
|
|
}
|
|
|
|
public void testEscapedQuotedString() { //PY-2656
|
|
doTest(PyBundle.message("INTN.quoted.string.single.to.double"));
|
|
}
|
|
|
|
public void testDoubledQuotedString() { //PY-2689
|
|
doTest(PyBundle.message("INTN.quoted.string.double.to.single"));
|
|
}
|
|
|
|
public void testMultilineQuotedString() { //PY-8064
|
|
getIndentOptions().INDENT_SIZE = 2;
|
|
doTest(PyBundle.message("INTN.quoted.string.double.to.single"));
|
|
}
|
|
|
|
public void testConvertLambdaToFunction() {
|
|
doTest(PyBundle.message("INTN.convert.lambda.to.function"));
|
|
}
|
|
|
|
public void testConvertLambdaToFunction1() { //PY-6610
|
|
doNegativeTest(PyBundle.message("INTN.convert.lambda.to.function"));
|
|
}
|
|
|
|
public void testConvertLambdaToFunction2() { //PY-6835
|
|
doTest(PyBundle.message("INTN.convert.lambda.to.function"));
|
|
}
|
|
|
|
public void testConvertVariadicParam() { //PY-2264
|
|
doTest(PyBundle.message("INTN.convert.variadic.param"));
|
|
}
|
|
|
|
// PY-20254
|
|
public void testConvertVariadicParamEmptySubscription() {
|
|
doNegativeTest(PyBundle.message("INTN.convert.variadic.param"));
|
|
}
|
|
|
|
// PY-25035
|
|
public void testConvertVariadicParamNoUsages() {
|
|
doNegativeTest(PyBundle.message("INTN.convert.variadic.param"));
|
|
}
|
|
|
|
// PY-25035
|
|
public void testConvertVariadicParamUnrelatedCaret() {
|
|
doNegativeTest(PyBundle.message("INTN.convert.variadic.param"));
|
|
}
|
|
|
|
public void testConvertVariadicParamInvalidIdentifiers() {
|
|
doTest(PyBundle.message("INTN.convert.variadic.param"));
|
|
}
|
|
|
|
public void testConvertVariadicParamPositionalContainerInPy2() {
|
|
doNegativeTest(PyBundle.message("INTN.convert.variadic.param"));
|
|
}
|
|
|
|
public void testConvertVariadicParamPositionalContainerInPy3() {
|
|
runWithLanguageLevel(LanguageLevel.PYTHON30, () -> doTest(PyBundle.message("INTN.convert.variadic.param")));
|
|
}
|
|
|
|
// PY-26284
|
|
public void testConvertVariadicParamKeywordContainerPop() {
|
|
doTest(PyBundle.message("INTN.convert.variadic.param"));
|
|
}
|
|
|
|
// PY-26285
|
|
public void testConvertVariadicParamOverriddenInNested() {
|
|
doTest(PyBundle.message("INTN.convert.variadic.param"));
|
|
}
|
|
|
|
// PY-26285
|
|
public void testConvertVariadicParamNotOverriddenInNested() {
|
|
doTest(PyBundle.message("INTN.convert.variadic.param"));
|
|
}
|
|
|
|
public void testConvertTripleQuotedString() { //PY-2697
|
|
doTest(PyBundle.message("INTN.triple.quoted.string"));
|
|
}
|
|
|
|
public void testConvertTripleQuotedString1() { //PY-7774
|
|
doTest(PyBundle.message("INTN.triple.quoted.string"));
|
|
}
|
|
|
|
public void testConvertTripleQuotedStringInParenthesized() { //PY-7883
|
|
doTest(PyBundle.message("INTN.triple.quoted.string"));
|
|
}
|
|
|
|
public void testConvertTripleQuotedUnicodeString() { //PY-7152
|
|
doTest(PyBundle.message("INTN.triple.quoted.string"));
|
|
}
|
|
|
|
public void testConvertTripleQuotedParenthesizedString() { //PY-7151
|
|
doTest(PyBundle.message("INTN.triple.quoted.string"));
|
|
}
|
|
|
|
// PY-8989
|
|
public void testConvertTripleQuotedStringRawStrings() {
|
|
doTest(PyBundle.message("INTN.triple.quoted.string"));
|
|
}
|
|
|
|
// PY-8989
|
|
public void testConvertTripleQuotedStringDoesNotReplacePythonEscapes() {
|
|
doTest(PyBundle.message("INTN.triple.quoted.string"), LanguageLevel.PYTHON33);
|
|
}
|
|
|
|
// PY-8989
|
|
public void testConvertTripleQuotedStringMultilineGluedString() {
|
|
doTest(PyBundle.message("INTN.triple.quoted.string"), LanguageLevel.PYTHON33);
|
|
}
|
|
|
|
public void testConvertTripleQuotedEmptyString() {
|
|
doTest(PyBundle.message("INTN.triple.quoted.string"), LanguageLevel.PYTHON33);
|
|
}
|
|
|
|
public void testTransformConditionalExpression() { //PY-3094
|
|
doTest(PyBundle.message("INTN.transform.into.if.else.statement"));
|
|
}
|
|
|
|
public void testImportFromToImport() {
|
|
doTest("Convert to 'import sys'");
|
|
}
|
|
|
|
// PY-11074
|
|
public void testImportToImportFrom() {
|
|
doTest("Convert to 'from __builtin__ import ...'");
|
|
}
|
|
|
|
public void testTypeInDocstring() {
|
|
getIndentOptions().INDENT_SIZE = 2;
|
|
doDocParamTypeTest(DocStringFormat.REST);
|
|
}
|
|
|
|
public void testTypeInDocstring3() {
|
|
doDocParamTypeTest(DocStringFormat.REST);
|
|
}
|
|
|
|
public void testTypeInDocstring4() {
|
|
doDocParamTypeTest(DocStringFormat.REST);
|
|
}
|
|
|
|
public void testTypeInDocstringParameterInCallable() {
|
|
doDocParamTypeTest(DocStringFormat.REST);
|
|
}
|
|
|
|
public void testTypeInDocstring5() {
|
|
getIndentOptions().INDENT_SIZE = 2;
|
|
doDocParamTypeTest(DocStringFormat.REST);
|
|
}
|
|
|
|
public void testTypeInDocstringAtTheEndOfFunction() {
|
|
doDocReturnTypeTest(DocStringFormat.REST);
|
|
}
|
|
|
|
public void testTypeInDocstring6() { //PY-7973
|
|
doNegativeTest(PyBundle.message("INTN.specify.return.type"));
|
|
}
|
|
|
|
public void testTypeInDocstring7() { //PY-8930
|
|
doDocParamTypeTest(DocStringFormat.REST);
|
|
}
|
|
|
|
// PY-16456
|
|
public void testTypeInDocStringDifferentIndentationSize() {
|
|
doDocParamTypeTest(DocStringFormat.REST);
|
|
}
|
|
|
|
// PY-16456
|
|
public void testReturnTypeInDocStringDifferentIndentationSize() {
|
|
doDocReturnTypeTest(DocStringFormat.REST);
|
|
}
|
|
|
|
public void testReturnTypeInDocstring() {
|
|
doDocReturnTypeTest(DocStringFormat.REST);
|
|
}
|
|
|
|
public void testTypeInDocstring1() {
|
|
getIndentOptions().INDENT_SIZE = 2;
|
|
doDocReturnTypeTest(DocStringFormat.REST);
|
|
}
|
|
|
|
public void testTypeInDocstring2() {
|
|
getIndentOptions().INDENT_SIZE = 2;
|
|
doDocReturnTypeTest(DocStringFormat.REST);
|
|
}
|
|
|
|
public void testTypeInPy3Annotation() { //PY-7045
|
|
doTypeAnnotationTest();
|
|
}
|
|
|
|
public void testReturnTypeInPy3Annotation() { //PY-7085
|
|
doTest(PyBundle.message("INTN.specify.return.type.in.annotation"), LanguageLevel.PYTHON32);
|
|
}
|
|
|
|
public void testReturnTypeInPy3Annotation1() { //PY-8783
|
|
doTest(PyBundle.message("INTN.specify.return.type.in.annotation"), LanguageLevel.PYTHON32);
|
|
}
|
|
|
|
public void testReturnTypeInPy3Annotation2() { //PY-8783
|
|
doTest(PyBundle.message("INTN.specify.return.type.in.annotation"), LanguageLevel.PYTHON32);
|
|
}
|
|
|
|
// PY-17094
|
|
public void testReturnTypeInPy3AnnotationLocalFunction() {
|
|
doTest(PyBundle.message("INTN.specify.return.type.in.annotation"), LanguageLevel.PYTHON32);
|
|
}
|
|
|
|
public void testReturnTypeInPy3AnnotationNoColon() {
|
|
doTest(PyBundle.message("INTN.specify.return.type.in.annotation"), LanguageLevel.PYTHON32);
|
|
}
|
|
|
|
public void testTypeAnnotation3() { //PY-7087
|
|
doTypeAnnotationTest();
|
|
}
|
|
|
|
private void doTypeAnnotationTest() {
|
|
doTest(PyBundle.message("INTN.specify.type.in.annotation"), LanguageLevel.PYTHON32);
|
|
}
|
|
|
|
public void testTypeAssertion() {
|
|
doTestTypeAssertion();
|
|
}
|
|
|
|
public void testTypeAssertion1() { //PY-7089
|
|
doTestTypeAssertion();
|
|
}
|
|
|
|
public void testTypeAssertion2() {
|
|
doTestTypeAssertion();
|
|
}
|
|
|
|
public void testTypeAssertion3() { //PY-7403
|
|
runWithLanguageLevel(LanguageLevel.PYTHON33, () -> doNegativeTest(PyBundle.message("INTN.insert.assertion")));
|
|
}
|
|
|
|
public void testTypeAssertion4() { //PY-7971
|
|
doTestTypeAssertion();
|
|
}
|
|
|
|
public void testTypeAssertionInDictComp() { //PY-7971
|
|
doNegativeTest(PyBundle.message("INTN.insert.assertion"));
|
|
}
|
|
|
|
private void doTestTypeAssertion() {
|
|
doTest(PyBundle.message("INTN.insert.assertion"));
|
|
}
|
|
|
|
public void testDocStub() {
|
|
doDocStubTest(DocStringFormat.REST);
|
|
}
|
|
|
|
public void testOneLineDocStub() {
|
|
doDocStubTest(DocStringFormat.REST);
|
|
}
|
|
|
|
public void testDocStubKeywordOnly() {
|
|
getIndentOptions().INDENT_SIZE = 2;
|
|
runWithLanguageLevel(LanguageLevel.PYTHON27, () -> doDocStubTest(DocStringFormat.REST));
|
|
}
|
|
|
|
// PY-16765
|
|
public void testGoogleDocStubCustomIndent() {
|
|
getIndentOptions().INDENT_SIZE = 2;
|
|
doDocStubTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testGoogleDocStubInlineFunctionBody() {
|
|
doDocStubTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testGoogleDocStubInlineFunctionBodyMultilineParametersList() {
|
|
doDocStubTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testGoogleDocStubInlineFunctionBodyNoSpaceBefore() {
|
|
doDocStubTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testGoogleDocStubEmptyFunctionBody() {
|
|
doDocStubTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testReturnTypeInNewGoogleDocString() {
|
|
doDocReturnTypeTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testParamTypeInNewGoogleDocString() {
|
|
doDocParamTypeTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testParamTypeInEmptyGoogleDocString() {
|
|
doDocParamTypeTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testParamTypeInGoogleDocStringOnlySummaryOneLine() {
|
|
doDocParamTypeTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testParamTypeInGoogleDocStringOnlySummary() {
|
|
doDocParamTypeTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testParamTypeInGoogleDocStringEmptyParamSection() {
|
|
doDocParamTypeTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testParamTypeInGoogleDocStringParamDeclaredNoParenthesis() {
|
|
doDocParamTypeTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testParamTypeInGoogleDocStringParamDeclaredEmptyParenthesis() {
|
|
doDocParamTypeTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testParamTypeInGoogleDocStringOtherParamDeclared() {
|
|
doDocParamTypeTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testParamTypeInGoogleDocStringOtherSectionExists() {
|
|
doDocParamTypeTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testReturnTypeInEmptyGoogleDocString() {
|
|
doDocReturnTypeTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testReturnTypeInGoogleDocStringEmptyReturnSection() {
|
|
doDocReturnTypeTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-16758
|
|
public void testGoogleReturnSectionAfterKeywords() {
|
|
doDocReturnTypeTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-16758
|
|
public void testGoogleReturnSectionAfterYields() {
|
|
doDocReturnTypeTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-16758
|
|
public void testGoogleReturnSectionBeforeRaises() {
|
|
doDocReturnTypeTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-16758
|
|
public void testParamSectionBeforeKeywords() {
|
|
doDocAddMissingParamsTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testGoogleDocStubWithTypes() {
|
|
final PyCodeInsightSettings codeInsightSettings = PyCodeInsightSettings.getInstance();
|
|
final boolean oldInsertTypeDocStub = codeInsightSettings.INSERT_TYPE_DOCSTUB;
|
|
codeInsightSettings.INSERT_TYPE_DOCSTUB = true;
|
|
try {
|
|
doDocStubTest(DocStringFormat.GOOGLE);
|
|
}
|
|
finally {
|
|
codeInsightSettings.INSERT_TYPE_DOCSTUB = oldInsertTypeDocStub;
|
|
}
|
|
}
|
|
|
|
// PY-4717
|
|
public void testNumpyDocStub() {
|
|
doDocStubTest(DocStringFormat.NUMPY);
|
|
}
|
|
|
|
// PY-4717
|
|
public void testNumpyDocStubWithTypes() {
|
|
final PyCodeInsightSettings codeInsightSettings = PyCodeInsightSettings.getInstance();
|
|
final boolean oldInsertTypeDocStub = codeInsightSettings.INSERT_TYPE_DOCSTUB;
|
|
codeInsightSettings.INSERT_TYPE_DOCSTUB = true;
|
|
try {
|
|
doDocStubTest(DocStringFormat.NUMPY);
|
|
}
|
|
finally {
|
|
codeInsightSettings.INSERT_TYPE_DOCSTUB = oldInsertTypeDocStub;
|
|
}
|
|
}
|
|
|
|
// PY-15332
|
|
public void testGoogleNoReturnSectionForInit() {
|
|
doDocStubTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-15332
|
|
public void testRestNoReturnTagForInit() {
|
|
doDocStubTest(DocStringFormat.REST);
|
|
}
|
|
|
|
// PY-16904
|
|
public void testNumpyAddMissingParameterPreservesNoneIndent() {
|
|
doDocAddMissingParamsTest(DocStringFormat.NUMPY);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testAddMissingParamsInGoogleDocString() {
|
|
doDocAddMissingParamsTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testAddMissingParamsInGoogleDocStringNoParamSection() {
|
|
doDocAddMissingParamsTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-16765
|
|
public void testAddMissingParamsInGoogleDocStringNoParamSectionCustomCodeIndent() {
|
|
getIndentOptions().INDENT_SIZE = 2;
|
|
doDocAddMissingParamsTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-9795
|
|
public void testAddMissingParamsInGoogleDocStringEmptyParamSection() {
|
|
doDocAddMissingParamsTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-16765
|
|
public void testAddMissingParamsInGoogleDocStringEmptyParamSectionCustomCodeIndent() {
|
|
getIndentOptions().INDENT_SIZE = 2;
|
|
doDocAddMissingParamsTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-4717
|
|
public void testReturnTypeInNewNumpyDocString() {
|
|
doDocReturnTypeTest(DocStringFormat.NUMPY);
|
|
}
|
|
|
|
// PY-4717
|
|
public void testParamTypeInNewNumpyDocString() {
|
|
doDocParamTypeTest(DocStringFormat.NUMPY);
|
|
}
|
|
|
|
// PY-4717
|
|
public void testParamTypeInEmptyNumpyDocString() {
|
|
doDocParamTypeTest(DocStringFormat.NUMPY);
|
|
}
|
|
|
|
// PY-4717
|
|
public void testParamTypeInNumpyDocStringOnlySummaryOneLine() {
|
|
doDocParamTypeTest(DocStringFormat.NUMPY);
|
|
}
|
|
|
|
// PY-4717
|
|
public void testParamTypeInNumpyDocStringOnlySummary() {
|
|
doDocParamTypeTest(DocStringFormat.NUMPY);
|
|
}
|
|
|
|
// PY-4717
|
|
public void testParamTypeInNumpyDocStringEmptyParamSection() {
|
|
doDocParamTypeTest(DocStringFormat.NUMPY);
|
|
}
|
|
|
|
// PY-4717
|
|
public void testParamTypeInNumpyDocStringParamDeclaredNoColon() {
|
|
doDocParamTypeTest(DocStringFormat.NUMPY);
|
|
}
|
|
|
|
// PY-4717
|
|
public void testParamTypeInNumpyDocStringParamDeclaredColon() {
|
|
doDocParamTypeTest(DocStringFormat.NUMPY);
|
|
}
|
|
|
|
// PY-4717
|
|
public void testParamTypeInNumpyDocStringOtherParamDeclared() {
|
|
doDocParamTypeTest(DocStringFormat.NUMPY);
|
|
}
|
|
|
|
// PY-4717
|
|
public void testParamTypeInNumpyDocStringOtherSectionExists() {
|
|
doDocParamTypeTest(DocStringFormat.NUMPY);
|
|
}
|
|
|
|
// PY-16908
|
|
public void testParamTypeInNumpyDocStringCombinedParams() {
|
|
doDocParamTypeTest(DocStringFormat.NUMPY);
|
|
}
|
|
|
|
// PY-16908
|
|
public void testParamTypeInNumpyDocStringCombinedParamsColon() {
|
|
doDocParamTypeTest(DocStringFormat.NUMPY);
|
|
}
|
|
|
|
// PY-4717
|
|
public void testReturnTypeInEmptyNumpyDocString() {
|
|
doDocReturnTypeTest(DocStringFormat.NUMPY);
|
|
}
|
|
|
|
// PY-4717
|
|
public void testReturnTypeInNumpyDocStringEmptyReturnSection() {
|
|
doDocReturnTypeTest(DocStringFormat.NUMPY);
|
|
}
|
|
|
|
// PY-16761
|
|
public void testPositionalVarargTypeInGoogleDocString() {
|
|
doDocParamTypeTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-16761
|
|
public void testKeywordVarargTypeInGoogleDocString() {
|
|
doDocParamTypeTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-16761
|
|
public void testAddMissingVarargsInGoogleDocString() {
|
|
doDocAddMissingParamsTest(DocStringFormat.GOOGLE);
|
|
}
|
|
|
|
// PY-7383
|
|
public void testYieldFrom() {
|
|
doTest(PyBundle.message("INTN.yield.from"), LanguageLevel.PYTHON33);
|
|
}
|
|
|
|
public void testConvertStaticMethodToFunction() {
|
|
doTest(PyBundle.message("INTN.convert.static.method.to.function"));
|
|
}
|
|
|
|
public void testConvertStaticMethodToFunctionUsage() {
|
|
doTest(PyBundle.message("INTN.convert.static.method.to.function"));
|
|
}
|
|
|
|
private void doDocStubTest(@NotNull DocStringFormat format) {
|
|
runWithDocStringFormat(format, () -> {
|
|
CodeInsightSettings.getInstance().JAVADOC_STUB_ON_ENTER = true;
|
|
doTest(PyBundle.message("INTN.doc.string.stub"), true);
|
|
});
|
|
}
|
|
|
|
private void doDocParamTypeTest(@NotNull DocStringFormat format) {
|
|
runWithDocStringFormat(format, () -> doTest(PyBundle.message("INTN.specify.type")));
|
|
}
|
|
|
|
private void doDocReturnTypeTest(@NotNull DocStringFormat format) {
|
|
runWithDocStringFormat(format, () -> doTest(PyBundle.message("INTN.specify.return.type")));
|
|
|
|
}
|
|
|
|
public void doDocAddMissingParamsTest(@NotNull DocStringFormat format) {
|
|
runWithDocStringFormat(format, () -> doTest(PyBundle.message("INTN.add.parameters.to.docstring")));
|
|
|
|
}
|
|
}
|