diff options
author | Josh Matthews <josh@joshmatthews.net> | 2020-05-20 14:19:47 -0400 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2020-05-20 14:19:47 -0400 |
commit | 4fec98722158e9816a4b3f83c7f6e38abcc5fa50 (patch) | |
tree | 58affe17934c296d4cca82e19a20094f1d375f54 /python/tidy | |
parent | 1f4acb940bdfb23fe3f8bbadaaa690663adcfaac (diff) | |
download | servo-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.py | 12 | ||||
-rw-r--r-- | python/tidy/servo_tidy_tests/duplicated_package.lock | 5 | ||||
-rw-r--r-- | python/tidy/servo_tidy_tests/test_tidy.py | 9 |
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) |