From 13847a1131e8abae39d757e8d6bc517bcc1eaac5 Mon Sep 17 00:00:00 2001 From: Maciej Skrzypkowski Date: Wed, 13 Apr 2016 12:18:13 +0200 Subject: [PATCH] Test for check_spec function, for tidy.py #9152 --- python/tidy.py | 7 ++++--- python/tidy_self_test/speclink.rs | 9 +++++++++ python/tidy_self_test/tidy_self_test.py | 5 +++++ 3 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 python/tidy_self_test/speclink.rs diff --git a/python/tidy.py b/python/tidy.py index 6110a9ea4eb..660b90e9abb 100644 --- a/python/tidy.py +++ b/python/tidy.py @@ -69,6 +69,8 @@ ignored_dirs = [ os.path.join(".", "."), ] +spec_base_path = "components/script/dom/" + def is_iter_empty(iterator): try: @@ -525,10 +527,9 @@ def check_json(filename, contents): def check_spec(file_name, lines): - base_path = "components/script/dom/" - if base_path not in file_name: + if spec_base_path not in file_name: raise StopIteration - file_name = os.path.relpath(os.path.splitext(file_name)[0], base_path) + file_name = os.path.relpath(os.path.splitext(file_name)[0], spec_base_path) patt = re.compile("^\s*\/\/.+") # Pattern representing a line with a macro diff --git a/python/tidy_self_test/speclink.rs b/python/tidy_self_test/speclink.rs new file mode 100644 index 00000000000..6c27a70a7d0 --- /dev/null +++ b/python/tidy_self_test/speclink.rs @@ -0,0 +1,9 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +impl SpecLinkMethods for SpecLink { + fn Test(&self) -> f32 { + 0 + } +} diff --git a/python/tidy_self_test/tidy_self_test.py b/python/tidy_self_test/tidy_self_test.py index d7666b58b73..e2a49f71a65 100644 --- a/python/tidy_self_test/tidy_self_test.py +++ b/python/tidy_self_test/tidy_self_test.py @@ -59,6 +59,11 @@ class CheckTidiness(unittest.TestCase): self.assertEqual('use &[T] instead of &Vec', errors.next()[2]) self.assertEqual('use &str instead of &String', errors.next()[2]) + def test_spec_link(self): + tidy.spec_base_path = "python/tidy_self_test/" + errors = tidy.collect_errors_for_files(iterFile('speclink.rs'), [], [tidy.check_spec]) + self.assertEqual('method declared in webidl is missing a comment with a specification link', errors.next()[2]) + def test_webidl(self): errors = tidy.collect_errors_for_files(iterFile('spec.webidl'), [tidy.check_webidl_spec], []) self.assertEqual('No specification link found.', errors.next()[2])