aboutsummaryrefslogtreecommitdiffstats
path: root/python/tidy
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2020-05-20 14:19:47 -0400
committerJosh Matthews <josh@joshmatthews.net>2020-05-20 14:19:47 -0400
commit4fec98722158e9816a4b3f83c7f6e38abcc5fa50 (patch)
tree58affe17934c296d4cca82e19a20094f1d375f54 /python/tidy
parent1f4acb940bdfb23fe3f8bbadaaa690663adcfaac (diff)
downloadservo-4fec98722158e9816a4b3f83c7f6e38abcc5fa50.tar.gz
servo-4fec98722158e9816a4b3f83c7f6e38abcc5fa50.zip
Fix output of test-tidy with duplicated packages.
Diffstat (limited to 'python/tidy')
-rw-r--r--python/tidy/servo_tidy/tidy.py12
-rw-r--r--python/tidy/servo_tidy_tests/duplicated_package.lock5
-rw-r--r--python/tidy/servo_tidy_tests/test_tidy.py9
3 files changed, 16 insertions, 10 deletions
diff --git a/python/tidy/servo_tidy/tidy.py b/python/tidy/servo_tidy/tidy.py
index 168ff0a9b6c..9beb0d943cd 100644
--- a/python/tidy/servo_tidy/tidy.py
+++ b/python/tidy/servo_tidy/tidy.py
@@ -352,8 +352,10 @@ def check_lock(file_name, contents):
def find_reverse_dependencies(name, content):
for package in itertools.chain([content.get("root", {})], content["package"]):
for dependency in package.get("dependencies", []):
- if dependency.startswith("{} ".format(name)):
- yield package["name"], dependency
+ parts = dependency.split()
+ dependency = (parts[0], parts[1] if len(parts) > 1 else None, parts[2] if len(parts) > 2 else None)
+ if dependency[0] == name:
+ yield package["name"], package["version"], dependency
if not file_name.endswith(".lock"):
raise StopIteration
@@ -394,9 +396,9 @@ def check_lock(file_name, contents):
short_source = source.split("#")[0].replace("git+", "")
message += "\n\t\033[93mThe following packages depend on version {} from '{}':\033[0m" \
.format(version, short_source)
- for name, dependency in packages_dependencies:
- if version in dependency and short_source in dependency:
- message += "\n\t\t" + name
+ for pname, package_version, dependency in packages_dependencies:
+ if version in dependency[1] and (not dependency[2] or short_source in dependency[2]):
+ message += "\n\t\t" + pname + " " + package_version
yield (1, message)
# Check to see if we are transitively using any blocked packages
diff --git a/python/tidy/servo_tidy_tests/duplicated_package.lock b/python/tidy/servo_tidy_tests/duplicated_package.lock
index 6075f99164c..22acce4257c 100644
--- a/python/tidy/servo_tidy_tests/duplicated_package.lock
+++ b/python/tidy/servo_tidy_tests/duplicated_package.lock
@@ -17,13 +17,16 @@ name = "test2"
version = "0.1.0"
source = "git+https://github.com/user/test2#c54edsf"
dependencies = [
- "test 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "test 0.4.9",
]
[[package]]
name = "test3"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "test 0.5.1",
+]
[[package]]
name = "test3"
diff --git a/python/tidy/servo_tidy_tests/test_tidy.py b/python/tidy/servo_tidy_tests/test_tidy.py
index 12f384b8674..3189250143a 100644
--- a/python/tidy/servo_tidy_tests/test_tidy.py
+++ b/python/tidy/servo_tidy_tests/test_tidy.py
@@ -195,14 +195,15 @@ class CheckTidiness(unittest.TestCase):
errors = tidy.collect_errors_for_files(iterFile('duplicated_package.lock'), [tidy.check_lock], [], print_text=False)
msg = """duplicate versions for package `test`
\t\x1b[93mThe following packages depend on version 0.4.9 from 'crates.io':\x1b[0m
-\t\ttest2
-\t\x1b[93mThe following packages depend on version 0.5.1 from 'crates.io':\x1b[0m"""
+\t\ttest2 0.1.0
+\t\x1b[93mThe following packages depend on version 0.5.1 from 'crates.io':\x1b[0m
+\t\ttest3 0.5.1"""
self.assertEqual(msg, next(errors)[2])
msg2 = """duplicate versions for package `test3`
\t\x1b[93mThe following packages depend on version 0.5.1 from 'crates.io':\x1b[0m
-\t\ttest4
+\t\ttest4 0.1.0
\t\x1b[93mThe following packages depend on version 0.5.1 from 'https://github.com/user/test3':\x1b[0m
-\t\ttest5"""
+\t\ttest5 0.1.0"""
self.assertEqual(msg2, next(errors)[2])
self.assertNoMoreErrors(errors)