From 2a302e12883bb14ce1d05d588ce8ad75b7c05f9b Mon Sep 17 00:00:00 2001 From: Andrey Vlasovskikh Date: Wed, 17 Jul 2013 18:47:54 +0400 Subject: [PATCH] Fixed duplicate requirements if several requires args are specified (PY-10297) --- .../com/jetbrains/python/packaging/PyRequirement.java | 4 ++-- .../DuplicateInstallAndTests/setup.py | 10 ++++++++++ .../DuplicateInstallAndTests/test1.py | 2 ++ 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 python/testData/inspections/PyPackageRequirementsInspection/DuplicateInstallAndTests/setup.py create mode 100644 python/testData/inspections/PyPackageRequirementsInspection/DuplicateInstallAndTests/test1.py diff --git a/python/openapi/src/com/jetbrains/python/packaging/PyRequirement.java b/python/openapi/src/com/jetbrains/python/packaging/PyRequirement.java index 607af5df5783..c65ddbb7a6ac 100644 --- a/python/openapi/src/com/jetbrains/python/packaging/PyRequirement.java +++ b/python/openapi/src/com/jetbrains/python/packaging/PyRequirement.java @@ -288,7 +288,7 @@ public class PyRequirement { @NotNull private static List parse(@NotNull String s, @Nullable VirtualFile anchor, @NotNull Set visited) { - final List result = new ArrayList(); + final Set result = new LinkedHashSet(); for (String line : StringUtil.splitByLines(s)) { final String trimmed = line.trim(); if (!trimmed.isEmpty()) { @@ -301,7 +301,7 @@ public class PyRequirement { } } } - return result; + return new ArrayList(result); } @NotNull diff --git a/python/testData/inspections/PyPackageRequirementsInspection/DuplicateInstallAndTests/setup.py b/python/testData/inspections/PyPackageRequirementsInspection/DuplicateInstallAndTests/setup.py new file mode 100644 index 000000000000..ea69e78d0f6a --- /dev/null +++ b/python/testData/inspections/PyPackageRequirementsInspection/DuplicateInstallAndTests/setup.py @@ -0,0 +1,10 @@ +from distutils.core import setup + +requires = [ + 'mynose' +] + +setup(name='foo', + version=0.1, + install_requires=requires, + tests_require=requires) diff --git a/python/testData/inspections/PyPackageRequirementsInspection/DuplicateInstallAndTests/test1.py b/python/testData/inspections/PyPackageRequirementsInspection/DuplicateInstallAndTests/test1.py new file mode 100644 index 000000000000..854c6b1d6127 --- /dev/null +++ b/python/testData/inspections/PyPackageRequirementsInspection/DuplicateInstallAndTests/test1.py @@ -0,0 +1,2 @@ +print("Hello, World!") + \ No newline at end of file