diff --git a/python/testData/override/circle_after.py b/python/testData/override/circle_after.py
index dd4c1d343e98..6fd648ed76aa 100644
--- a/python/testData/override/circle_after.py
+++ b/python/testData/override/circle_after.py
@@ -4,7 +4,7 @@ class Spam(Eggs):
class Eggs(Spam):
def spam_methods(self):
- super(Eggs, self).spam_methods()
+ super().spam_methods()
def my_methods(self):
pass
diff --git a/python/testData/override/classmethodNewStyle_after.py b/python/testData/override/classmethodNewStyle_after.py
index c5e048d6cde2..98f09cfcf529 100644
--- a/python/testData/override/classmethodNewStyle_after.py
+++ b/python/testData/override/classmethodNewStyle_after.py
@@ -6,5 +6,5 @@ class A(object):
class B(A):
@classmethod
def m(cls):
- super(B, cls).m()
+ super().m()
diff --git a/python/testData/override/classmethod_after.py b/python/testData/override/classmethod_after.py
index dd85fe6b083e..ab342c5c78bf 100644
--- a/python/testData/override/classmethod_after.py
+++ b/python/testData/override/classmethod_after.py
@@ -6,4 +6,4 @@ class A:
class B(A):
@classmethod
def foo(cls):
- A.foo(cls)
+ super().foo()
diff --git a/python/testData/override/dunderNew_after.py b/python/testData/override/dunderNew_after.py
index 4770bf402495..bc21e756faca 100644
--- a/python/testData/override/dunderNew_after.py
+++ b/python/testData/override/dunderNew_after.py
@@ -5,5 +5,5 @@ class BaseMeta(type):
class MyMeta(BaseMeta):
def __new__(cls, name, bases, namespace):
- return super(MyMeta, cls).__new__(cls, name, bases, namespace)
+ return super().__new__(cls, name, bases, namespace)
diff --git a/python/testData/override/indent_after.py b/python/testData/override/indent_after.py
index f51ffeff5a0a..5f676441ef79 100644
--- a/python/testData/override/indent_after.py
+++ b/python/testData/override/indent_after.py
@@ -4,4 +4,4 @@ class Dialog:
class B(Dialog):
def validate(self):
- Dialog.validate(self)
\ No newline at end of file
+ super().validate()
\ No newline at end of file
diff --git a/python/testData/override/innerClass.py b/python/testData/override/innerClass.py
index 8c0eaef2e0b9..cf9941b4d416 100644
--- a/python/testData/override/innerClass.py
+++ b/python/testData/override/innerClass.py
@@ -9,4 +9,4 @@ class A:
class B(A):
def otherMethod(self, foo, bar):
- print foo, bar
+ print(foo, bar)
diff --git a/python/testData/override/innerClass_after.py b/python/testData/override/innerClass_after.py
index 5c49802d18bb..b7063ef8ec82 100644
--- a/python/testData/override/innerClass_after.py
+++ b/python/testData/override/innerClass_after.py
@@ -5,10 +5,10 @@ class X(object):
class A:
class Inner(X):
def foo(self):
- super(A.Inner, self).foo()
+ super().foo()
def doStuff(self, foo=True): pass
class B(A):
def otherMethod(self, foo, bar):
- print foo, bar
+ print(foo, bar)
diff --git a/python/testData/override/innerFunctionClass_after.py b/python/testData/override/innerFunctionClass_after.py
index d1230e14ce08..769e9d7120d1 100644
--- a/python/testData/override/innerFunctionClass_after.py
+++ b/python/testData/override/innerFunctionClass_after.py
@@ -6,5 +6,5 @@ class A():
def service(self):
class B(X):
def foo(self):
- super(B, self).foo()
+ super().foo()
diff --git a/python/testData/override/instanceCheck_after.py b/python/testData/override/instanceCheck_after.py
index fbebd1f526c1..dda1fe7029e0 100644
--- a/python/testData/override/instanceCheck_after.py
+++ b/python/testData/override/instanceCheck_after.py
@@ -1,3 +1,6 @@
+from typing import Any
+
+
class MyType(type):
- def __instancecheck__(self, instance):
- return super(MyType, self).__instancecheck__(instance)
+ def __instancecheck__(self, __instance: Any) -> bool:
+ return super().__instancecheck__(__instance)
diff --git a/python/testData/override/newStyle.py b/python/testData/override/newStyleClassInPython2.py
similarity index 100%
rename from python/testData/override/newStyle.py
rename to python/testData/override/newStyleClassInPython2.py
diff --git a/python/testData/override/newStyle_after.py b/python/testData/override/newStyleClassInPython2_after.py
similarity index 100%
rename from python/testData/override/newStyle_after.py
rename to python/testData/override/newStyleClassInPython2_after.py
diff --git a/python/testData/override/simple.py b/python/testData/override/oldStyleClassInPython2.py
similarity index 100%
rename from python/testData/override/simple.py
rename to python/testData/override/oldStyleClassInPython2.py
diff --git a/python/testData/override/simple_after.py b/python/testData/override/oldStyleClassInPython2_after.py
similarity index 100%
rename from python/testData/override/simple_after.py
rename to python/testData/override/oldStyleClassInPython2_after.py
diff --git a/python/testData/override/property_after.py b/python/testData/override/property_after.py
index dd3029e2c190..d4d6f170bc8c 100644
--- a/python/testData/override/property_after.py
+++ b/python/testData/override/property_after.py
@@ -7,5 +7,5 @@ class C(object):
class D(C):
@property
def foo(self):
- return super(D, self).foo
+ return super().foo
diff --git a/python/testData/override/qualified_after.py b/python/testData/override/qualified_after.py
index c405b979cfb7..f10cdb3257c4 100644
--- a/python/testData/override/qualified_after.py
+++ b/python/testData/override/qualified_after.py
@@ -1,6 +1,8 @@
import turtle
+from tkinter import Canvas
+
class C(turtle.TurtleScreenBase):
- def __init__(self, cv):
- super(C, self).__init__(cv)
+ def __init__(self, cv: Canvas) -> None:
+ super().__init__(cv)
diff --git a/python/testData/override/returnValue_after.py b/python/testData/override/returnValue_after.py
index 2a0dcb2b65cd..2ea50dce2e54 100644
--- a/python/testData/override/returnValue_after.py
+++ b/python/testData/override/returnValue_after.py
@@ -3,7 +3,7 @@ class A:
class B(A):
def doStuff(self, foo=True):
- return A.doStuff(self, foo)
+ return super().doStuff(foo)
def otherMethod(self, foo, bar):
print foo, bar
diff --git a/python/testData/override/staticMethod_after.py b/python/testData/override/staticMethod_after.py
index 000c0ca534cf..59653d58d718 100644
--- a/python/testData/override/staticMethod_after.py
+++ b/python/testData/override/staticMethod_after.py
@@ -6,4 +6,4 @@ class A:
class B(A):
@staticmethod
def foo(cls):
- A.foo(cls)
+ super().foo(cls)
diff --git a/python/testSrc/com/jetbrains/python/PyOverrideTest.java b/python/testSrc/com/jetbrains/python/PyOverrideTest.java
index d164311fc09d..40b955222b64 100644
--- a/python/testSrc/com/jetbrains/python/PyOverrideTest.java
+++ b/python/testSrc/com/jetbrains/python/PyOverrideTest.java
@@ -1,7 +1,6 @@
// Copyright 2000-2021 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;
-import com.intellij.testFramework.LightProjectDescriptor;
import com.intellij.util.ObjectUtils;
import com.intellij.util.containers.ContainerUtil;
import com.jetbrains.python.codeInsight.override.PyMethodMember;
@@ -23,11 +22,6 @@ import java.util.List;
public class PyOverrideTest extends PyTestCase {
- @Override
- protected @Nullable LightProjectDescriptor getProjectDescriptor() {
- return ourPy2Descriptor;
- }
-
private void doTest() {
doTest(null);
}
@@ -64,10 +58,6 @@ public class PyOverrideTest extends PyTestCase {
PyOverrideImplementUtil.overrideMethods(myFixture.getEditor(), subClass, ContainerUtil.map(implToOverride, PyMethodMember::new), false);
}
- private void doTest3k() {
- runWithLanguageLevel(LanguageLevel.PYTHON34, this::doTest);
- }
-
/**
* Ensures loops in class hierarchy does not lead to SO
*/
@@ -75,8 +65,8 @@ public class PyOverrideTest extends PyTestCase {
doTest();
}
- public void testSimple() {
- doTest();
+ public void testOldStyleClassInPython2() {
+ runWithLanguageLevel(LanguageLevel.PYTHON27, this::doTest);
}
public void testClassmethod() {
@@ -87,8 +77,8 @@ public class PyOverrideTest extends PyTestCase {
doTest();
}
- public void testNewStyle() {
- doTest();
+ public void testNewStyleClassInPython2() {
+ runWithLanguageLevel(LanguageLevel.PYTHON27, this::doTest);
}
public void testReturnValue() { // PY-1537
@@ -140,17 +130,17 @@ public class PyOverrideTest extends PyTestCase {
}
public void testPy3k() {
- doTest3k();
+ doTest();
}
// PY-15629
public void testStaticMethodPy3k() {
- doTest3k();
+ doTest();
}
// PY-15629
public void testDunderNewPy3k() {
- doTest3k();
+ doTest();
}
// PY-15629
@@ -159,11 +149,11 @@ public class PyOverrideTest extends PyTestCase {
}
public void testTypeAnnotations() { // PY-2547
- doTest3k();
+ doTest();
}
public void testReturnAnnotation() { // PY-2690
- doTest3k();
+ doTest();
}
// PY-18553
@@ -180,23 +170,21 @@ public class PyOverrideTest extends PyTestCase {
}
private void doTestImportsForTypeAnnotations() {
- runWithLanguageLevel(LanguageLevel.PYTHON35, () -> {
- myFixture.configureByFiles(getTestName(true) + ".py", getTestName(true) + "_import.py");
- doOverride(null);
- myFixture.checkResultByFile(getTestName(true) + "_after.py", true);
- });
+ myFixture.configureByFiles(getTestName(true) + ".py", getTestName(true) + "_import.py");
+ doOverride(null);
+ myFixture.checkResultByFile(getTestName(true) + "_after.py", true);
}
public void testSingleStar() { // PY-6455
- doTest3k();
+ doTest();
}
public void testStarArgs() { // PY-6455
- doTest3k();
+ doTest();
}
public void testKwargs() { // PY-7401
- doTest3k();
+ doTest();
}
public void testDocstring() {
@@ -210,26 +198,24 @@ public class PyOverrideTest extends PyTestCase {
// PY-19312
public void testAsyncMethod() {
- runWithLanguageLevel(LanguageLevel.PYTHON36, this::doTest);
+ doTest();
}
// PY-30287
public void testMethodWithOverloadsInTheSameFile() {
- runWithLanguageLevel(LanguageLevel.PYTHON35, this::doTest);
+ doTest();
}
// PY-30287
public void testMethodWithOverloadsInAnotherFile() {
- runWithLanguageLevel(LanguageLevel.PYTHON35, () -> {
- myFixture.configureByFiles(getTestName(true) + ".py", getTestName(true) + "_parent.py");
- doOverride(null);
- myFixture.checkResultByFile(getTestName(true) + "_after.py", true);
- });
+ myFixture.configureByFiles(getTestName(true) + ".py", getTestName(true) + "_parent.py");
+ doOverride("B");
+ myFixture.checkResultByFile(getTestName(true) + "_after.py", true);
}
// PY-35512
public void testPositionalOnlyParameters() {
- runWithLanguageLevel(LanguageLevel.PYTHON38, () -> doTest("B"));
+ doTest("B");
}
@Override