From 49bbf98c53a86f51f4c42644874010a49bef5fc7 Mon Sep 17 00:00:00 2001 From: Semyon Proshev Date: Tue, 21 May 2019 15:14:58 +0300 Subject: [PATCH] Test for missed super.__init__ call with positional-only parameters (PEP 570) (PY-35512) GitOrigin-RevId: cf61e7c851f08223582caa58c58e4868b5cd7e35 --- .../positionalOnlyParameters.py | 7 +++++++ .../positionalOnlyParameters_after.py | 7 +++++++ .../python/quickFixes/PyAddCallSuperQuickFixTest.java | 8 +++++++- 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 python/testData/quickFixes/PyAddCallSuperQuickFixTest/positionalOnlyParameters.py create mode 100644 python/testData/quickFixes/PyAddCallSuperQuickFixTest/positionalOnlyParameters_after.py diff --git a/python/testData/quickFixes/PyAddCallSuperQuickFixTest/positionalOnlyParameters.py b/python/testData/quickFixes/PyAddCallSuperQuickFixTest/positionalOnlyParameters.py new file mode 100644 index 000000000000..acc9f0d45e05 --- /dev/null +++ b/python/testData/quickFixes/PyAddCallSuperQuickFixTest/positionalOnlyParameters.py @@ -0,0 +1,7 @@ +class A: + def __init__(self, a, /, b, *args, c, **kwargs): + pass + +class B(A): + def __init__(self): + pass \ No newline at end of file diff --git a/python/testData/quickFixes/PyAddCallSuperQuickFixTest/positionalOnlyParameters_after.py b/python/testData/quickFixes/PyAddCallSuperQuickFixTest/positionalOnlyParameters_after.py new file mode 100644 index 000000000000..5d9661ee8a1c --- /dev/null +++ b/python/testData/quickFixes/PyAddCallSuperQuickFixTest/positionalOnlyParameters_after.py @@ -0,0 +1,7 @@ +class A: + def __init__(self, a, /, b, *args, c, **kwargs): + pass + +class B(A): + def __init__(self, a, /, b, *args, c, **kwargs): + super().__init__(a, b, *args, c=c, **kwargs) \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/quickFixes/PyAddCallSuperQuickFixTest.java b/python/testSrc/com/jetbrains/python/quickFixes/PyAddCallSuperQuickFixTest.java index 0c095bc09fa1..c34acf5c0a47 100644 --- a/python/testSrc/com/jetbrains/python/quickFixes/PyAddCallSuperQuickFixTest.java +++ b/python/testSrc/com/jetbrains/python/quickFixes/PyAddCallSuperQuickFixTest.java @@ -19,8 +19,9 @@ import com.intellij.testFramework.TestDataPath; import com.jetbrains.python.PyBundle; import com.jetbrains.python.PyQuickFixTestCase; import com.jetbrains.python.inspections.PyMissingConstructorInspection; +import com.jetbrains.python.psi.LanguageLevel; -@TestDataPath("$CONTENT_ROOT/../testData//quickFixes/AddCallSuperQuickFixTest/") +@TestDataPath("$CONTENT_ROOT/../testData/quickFixes/PyAddCallSuperQuickFixTest/") public class PyAddCallSuperQuickFixTest extends PyQuickFixTestCase { public void testOldStyle() { @@ -34,4 +35,9 @@ public class PyAddCallSuperQuickFixTest extends PyQuickFixTestCase { public void testKwargs() { doQuickFixTest(PyMissingConstructorInspection.class, PyBundle.message("QFIX.add.super")); } + + // PY-35512 + public void testPositionalOnlyParameters() { + doQuickFixTest(PyMissingConstructorInspection.class, PyBundle.message("QFIX.add.super"), LanguageLevel.PYTHON38); + } }