From aceb60ec1d33d3ce1fb49fb6fab74af3e3a1f0ac Mon Sep 17 00:00:00 2001 From: William Lee Date: Thu, 3 Nov 2016 14:45:43 -0400 Subject: Add tidy linting checks for buildbot_steps.yml This commit adds tidy checks for buildbot_steps.yml, as well as unit tests. These checks include: * Checking buildbot_steps.yml can be parsed by a YAML loader * buildbot_steps.yml does not contain duplicate keys * buildbot_steps.yml keys map to a list of strings --- .../servo_tidy_tests/duplicate_keys_buildbot_steps.yml | 7 +++++++ .../servo_tidy_tests/non_list_mapping_buildbot_steps.yml | 2 ++ .../servo_tidy_tests/non_string_list_buildbot_steps.yml | 7 +++++++ python/tidy/servo_tidy_tests/test_tidy.py | 15 +++++++++++++++ 4 files changed, 31 insertions(+) create mode 100644 python/tidy/servo_tidy_tests/duplicate_keys_buildbot_steps.yml create mode 100644 python/tidy/servo_tidy_tests/non_list_mapping_buildbot_steps.yml create mode 100644 python/tidy/servo_tidy_tests/non_string_list_buildbot_steps.yml (limited to 'python/tidy/servo_tidy_tests') diff --git a/python/tidy/servo_tidy_tests/duplicate_keys_buildbot_steps.yml b/python/tidy/servo_tidy_tests/duplicate_keys_buildbot_steps.yml new file mode 100644 index 00000000000..ed5d046095f --- /dev/null +++ b/python/tidy/servo_tidy_tests/duplicate_keys_buildbot_steps.yml @@ -0,0 +1,7 @@ +--- +duplicate_yaml_key: + - value1 +other_key: + - value2 +duplicate_yaml_key: + - value3 diff --git a/python/tidy/servo_tidy_tests/non_list_mapping_buildbot_steps.yml b/python/tidy/servo_tidy_tests/non_list_mapping_buildbot_steps.yml new file mode 100644 index 00000000000..2581aa21d88 --- /dev/null +++ b/python/tidy/servo_tidy_tests/non_list_mapping_buildbot_steps.yml @@ -0,0 +1,2 @@ +--- +non-list-key: "string string" diff --git a/python/tidy/servo_tidy_tests/non_string_list_buildbot_steps.yml b/python/tidy/servo_tidy_tests/non_string_list_buildbot_steps.yml new file mode 100644 index 00000000000..d9255e7cfe5 --- /dev/null +++ b/python/tidy/servo_tidy_tests/non_string_list_buildbot_steps.yml @@ -0,0 +1,7 @@ +--- +# This is a buildbot_steps.yml file that should break linting becasue it is not a +# mapping to a list of strings +mapping_key: + - - list_of_list + - sublist_item1 + - sublist_item2 diff --git a/python/tidy/servo_tidy_tests/test_tidy.py b/python/tidy/servo_tidy_tests/test_tidy.py index 6dd97aee7e3..12d7b9ebae7 100644 --- a/python/tidy/servo_tidy_tests/test_tidy.py +++ b/python/tidy/servo_tidy_tests/test_tidy.py @@ -177,6 +177,21 @@ class CheckTidiness(unittest.TestCase): self.assertEqual('Unordered key (found b before a)', errors.next()[2]) self.assertNoMoreErrors(errors) + def test_yaml_with_duplicate_key(self): + errors = tidy.collect_errors_for_files(iterFile('duplicate_keys_buildbot_steps.yml'), [tidy.check_yaml], [], print_text=False) + self.assertEqual('Duplicated Key (duplicate_yaml_key)', errors.next()[2]) + self.assertNoMoreErrors(errors) + + def test_non_list_mapped_buildbot_steps(self): + errors = tidy.collect_errors_for_files(iterFile('non_list_mapping_buildbot_steps.yml'), [tidy.check_yaml], [], print_text=False) + self.assertEqual("Key 'non-list-key' maps to type 'str', but list expected", errors.next()[2]) + self.assertNoMoreErrors(errors) + + def test_non_string_list_mapping_buildbot_steps(self): + errors = tidy.collect_errors_for_files(iterFile('non_string_list_buildbot_steps.yml'), [tidy.check_yaml], [], print_text=False) + self.assertEqual("List mapped to 'mapping_key' contains non-string element", errors.next()[2]) + self.assertNoMoreErrors(errors) + def test_lock(self): errors = tidy.collect_errors_for_files(iterFile('duplicated_package.lock'), [tidy.check_lock], [], print_text=False) msg = """duplicate versions for package "test" -- cgit v1.2.3