From 76cf8392470bc0196e6cad2c1c922728c3edf3eb Mon Sep 17 00:00:00 2001 From: Andrey Vlasovskikh Date: Wed, 16 Dec 2015 19:49:40 +0300 Subject: [PATCH] Updated stdlib_packages.txt for Python 3.5 (PY-17422, PY-16753) --- python/helpers/tools/stdlib_packages.txt | 8 ++++++++ .../PyPackageRequirementsInspection.java | 20 ++++++++++--------- .../ImportsNotInRequirementsTxt/test1.py | 2 +- .../IpAddressNotInRequirements/ipaddress.py | 0 .../requirements.txt | 0 .../IpAddressNotInRequirements/test1.py | 4 ++++ .../TypingNotInRequirements/requirements.txt | 0 .../TypingNotInRequirements/test1.py | 3 +++ .../TypingNotInRequirements/typing.py | 0 .../PyPackageRequirementsInspectionTest.java | 13 +++++++++++- 10 files changed, 39 insertions(+), 11 deletions(-) create mode 100644 python/testData/inspections/PyPackageRequirementsInspection/IpAddressNotInRequirements/ipaddress.py create mode 100644 python/testData/inspections/PyPackageRequirementsInspection/IpAddressNotInRequirements/requirements.txt create mode 100644 python/testData/inspections/PyPackageRequirementsInspection/IpAddressNotInRequirements/test1.py create mode 100644 python/testData/inspections/PyPackageRequirementsInspection/TypingNotInRequirements/requirements.txt create mode 100644 python/testData/inspections/PyPackageRequirementsInspection/TypingNotInRequirements/test1.py create mode 100644 python/testData/inspections/PyPackageRequirementsInspection/TypingNotInRequirements/typing.py diff --git a/python/helpers/tools/stdlib_packages.txt b/python/helpers/tools/stdlib_packages.txt index 2ee4b5d22705..257fc28b9f62 100644 --- a/python/helpers/tools/stdlib_packages.txt +++ b/python/helpers/tools/stdlib_packages.txt @@ -73,6 +73,7 @@ ensurepip enum errno exceptions +faulthandler fcntl filecmp fileinput @@ -113,6 +114,7 @@ importlib imputil inspect io +ipaddress itertools json keyword @@ -136,6 +138,8 @@ MimeWriter mimify mmap modulefinder +msilib +msvcrt multifile multiprocessing mutex @@ -265,6 +269,7 @@ tty turtle turtledemo types +typing tzparse unicodedata unittest @@ -281,6 +286,8 @@ warnings wave weakref webbrowser +winreg +winsound whichdb whrandom wsgiref @@ -290,6 +297,7 @@ xmllib xmlrpc xmlrpclib xxsubtype +zipapp zipfile zipimport zlib diff --git a/python/src/com/jetbrains/python/inspections/PyPackageRequirementsInspection.java b/python/src/com/jetbrains/python/inspections/PyPackageRequirementsInspection.java index a92537dc50b3..9ae8717746dc 100644 --- a/python/src/com/jetbrains/python/inspections/PyPackageRequirementsInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyPackageRequirementsInspection.java @@ -177,15 +177,17 @@ public class PyPackageRequirementsInspection extends PyInspection { return; } } - final PsiReference reference = packageReferenceExpression.getReference(); - if (reference != null) { - final PsiElement element = reference.resolve(); - if (element != null) { - final PsiFile file = element.getContainingFile(); - if (file != null) { - final VirtualFile virtualFile = file.getVirtualFile(); - if (ModuleUtilCore.moduleContainsFile(module, virtualFile, false)) { - return; + if (!ApplicationManager.getApplication().isUnitTestMode()) { + final PsiReference reference = packageReferenceExpression.getReference(); + if (reference != null) { + final PsiElement element = reference.resolve(); + if (element != null) { + final PsiFile file = element.getContainingFile(); + if (file != null) { + final VirtualFile virtualFile = file.getVirtualFile(); + if (ModuleUtilCore.moduleContainsFile(module, virtualFile, false)) { + return; + } } } } diff --git a/python/testData/inspections/PyPackageRequirementsInspection/ImportsNotInRequirementsTxt/test1.py b/python/testData/inspections/PyPackageRequirementsInspection/ImportsNotInRequirementsTxt/test1.py index dbac1432bec8..24b98b4a04ec 100644 --- a/python/testData/inspections/PyPackageRequirementsInspection/ImportsNotInRequirementsTxt/test1.py +++ b/python/testData/inspections/PyPackageRequirementsInspection/ImportsNotInRequirementsTxt/test1.py @@ -3,7 +3,7 @@ import clevercss import convert import django.conf import httplib -import test2, test3 +import test3 print('Hello, World!') diff --git a/python/testData/inspections/PyPackageRequirementsInspection/IpAddressNotInRequirements/ipaddress.py b/python/testData/inspections/PyPackageRequirementsInspection/IpAddressNotInRequirements/ipaddress.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/python/testData/inspections/PyPackageRequirementsInspection/IpAddressNotInRequirements/requirements.txt b/python/testData/inspections/PyPackageRequirementsInspection/IpAddressNotInRequirements/requirements.txt new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/python/testData/inspections/PyPackageRequirementsInspection/IpAddressNotInRequirements/test1.py b/python/testData/inspections/PyPackageRequirementsInspection/IpAddressNotInRequirements/test1.py new file mode 100644 index 000000000000..64ef9ef3b69d --- /dev/null +++ b/python/testData/inspections/PyPackageRequirementsInspection/IpAddressNotInRequirements/test1.py @@ -0,0 +1,4 @@ +import ipaddress + + +print(ipaddress) \ No newline at end of file diff --git a/python/testData/inspections/PyPackageRequirementsInspection/TypingNotInRequirements/requirements.txt b/python/testData/inspections/PyPackageRequirementsInspection/TypingNotInRequirements/requirements.txt new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/python/testData/inspections/PyPackageRequirementsInspection/TypingNotInRequirements/test1.py b/python/testData/inspections/PyPackageRequirementsInspection/TypingNotInRequirements/test1.py new file mode 100644 index 000000000000..9dbada6fe711 --- /dev/null +++ b/python/testData/inspections/PyPackageRequirementsInspection/TypingNotInRequirements/test1.py @@ -0,0 +1,3 @@ +import typing + +print(typing) diff --git a/python/testData/inspections/PyPackageRequirementsInspection/TypingNotInRequirements/typing.py b/python/testData/inspections/PyPackageRequirementsInspection/TypingNotInRequirements/typing.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/python/testSrc/com/jetbrains/python/inspections/PyPackageRequirementsInspectionTest.java b/python/testSrc/com/jetbrains/python/inspections/PyPackageRequirementsInspectionTest.java index dea0c2d198b4..00d5eee2330e 100644 --- a/python/testSrc/com/jetbrains/python/inspections/PyPackageRequirementsInspectionTest.java +++ b/python/testSrc/com/jetbrains/python/inspections/PyPackageRequirementsInspectionTest.java @@ -16,6 +16,7 @@ package com.jetbrains.python.inspections; import com.jetbrains.python.fixtures.PyTestCase; +import com.jetbrains.python.psi.LanguageLevel; import org.jetbrains.annotations.NotNull; /** @@ -38,11 +39,21 @@ public class PyPackageRequirementsInspectionTest extends PyTestCase { doTest("test1.py"); } + // PY-16753 + public void testIpAddressNotInRequirements() { + runWithLanguageLevel(LanguageLevel.PYTHON34, () -> doTest("test1.py")); + } + + // PY-17422 + public void testTypingNotInRequirements() { + runWithLanguageLevel(LanguageLevel.PYTHON35, () -> doTest("test1.py")); + } + private void doTest(@NotNull final String filename) { final String testName = getTestName(false); myFixture.copyDirectoryToProject("inspections/PyPackageRequirementsInspection/" + testName, ""); myFixture.configureFromTempProjectFile(filename); myFixture.enableInspections(PyPackageRequirementsInspection.class); - myFixture.checkHighlighting(true, false, false); + myFixture.checkHighlighting(true, false, true); } }