PY-16656 Add test cases. Issue was fixed when enter and space handlers started to use PyDocstringGenerator

This commit is contained in:
Mikhail Golubev
2015-09-01 13:01:48 +03:00
parent fc8ea56374
commit 4bae7ca3c3
5 changed files with 59 additions and 17 deletions

View File

@@ -0,0 +1,8 @@
def foo(self, x):
"""
:param self:
:param x:
:return:
"""
pass

View File

@@ -0,0 +1,3 @@
def foo(self, x):
"""<caret>
pass

View File

@@ -0,0 +1,10 @@
class C:
@staticmethod
def m(self, x):
"""
:param self:
:param x:
:return:
"""
pass

View File

@@ -0,0 +1,5 @@
class C:
@staticmethod
def m(self, x):
"""<caret>
pass

View File

@@ -26,9 +26,9 @@ import com.intellij.openapi.editor.ex.EditorSettingsExternalizable;
import com.intellij.openapi.util.Computable;
import com.intellij.psi.PsiFile;
import com.jetbrains.python.documentation.DocStringFormat;
import com.jetbrains.python.documentation.PyDocumentationSettings;
import com.jetbrains.python.fixtures.PyTestCase;
import com.jetbrains.python.psi.LanguageLevel;
import org.jetbrains.annotations.NotNull;
/**
* @author yole
@@ -198,40 +198,47 @@ public class PyEditingTest extends PyTestCase {
}
public void testEnterStubInDocstring() { // CR-PY-144
final PyDocumentationSettings documentationSettings = PyDocumentationSettings.getInstance(myFixture.getModule());
final DocStringFormat oldFormat = documentationSettings.getFormat();
documentationSettings.setFormat(DocStringFormat.PLAIN);
try {
doTestEnter("def foo():\n \"\"\"<caret>", "def foo():\n" +
" \"\"\"\n" +
" \n" +
" \"\"\"");
} finally {
documentationSettings.setFormat(oldFormat);
}
runWithDocStringFormat(DocStringFormat.PLAIN, new Runnable() {
public void run() {
doTestEnter("def foo():\n \"\"\"<caret>", "def foo():\n" +
" \"\"\"\n" +
" \n" +
" \"\"\"");
}
});
}
public void testEnterDocStringStubInClass() {
doTypingTest('\n');
doDocStringTypingTest('\n', DocStringFormat.REST);
}
public void testEnterDocStringStubInFile() {
doTypingTest('\n');
doDocStringTypingTest('\n', DocStringFormat.REST);
}
// PY-16656
public void testEnterDocStringStubInFunctionWithSelf() {
doDocStringTypingTest('\n', DocStringFormat.REST);
}
// PY-16656
public void testEnterDocStringStubInStaticMethodWithSelf() {
doDocStringTypingTest('\n', DocStringFormat.REST);
}
// PY-3421
public void testSpaceDocStringStubInFunction() {
doTypingTest(' ');
doDocStringTypingTest(' ', DocStringFormat.REST);
}
// PY-3421
public void testSpaceDocStringStubInFile() {
doTypingTest(' ');
doDocStringTypingTest(' ', DocStringFormat.REST);
}
// PY-3421
public void testSpaceDocStringStubInClass() {
doTypingTest(' ');
doDocStringTypingTest(' ', DocStringFormat.REST);
}
public void testEnterInString() { // PY-1738
@@ -424,6 +431,15 @@ public class PyEditingTest extends PyTestCase {
myFixture.checkResultByFile(testName + ".after.py");
}
private void doDocStringTypingTest(final char character, @NotNull DocStringFormat format) {
runWithDocStringFormat(format, new Runnable() {
@Override
public void run() {
doTypingTest(character);
}
});
}
private void doTyping(final char character) {
final int offset = myFixture.getEditor().getCaretModel().getOffset();
final PsiFile file = WriteCommandAction.runWriteCommandAction(null, new Computable<PsiFile>() {