Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(158)

Unified Diff: third_party/WebKit/Tools/Scripts/webkitpy/w3c/directory_owners_extractor_unittest.py

Issue 2649363003: Extract test directory owner email addresses from W3CImportExpectations. (Closed)
Patch Set: Handle spaces after commas; remove now-unused script. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Tools/Scripts/webkitpy/w3c/directory_owners_extractor.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Tools/Scripts/webkitpy/w3c/directory_owners_extractor_unittest.py
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/directory_owners_extractor_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/directory_owners_extractor_unittest.py
new file mode 100644
index 0000000000000000000000000000000000000000..189570e8a2d93488f403d970f8a5c5c3b9e2cfdd
--- /dev/null
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/directory_owners_extractor_unittest.py
@@ -0,0 +1,75 @@
+# Copyright 2017 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import unittest
+
+from webkitpy.common.system.filesystem_mock import MockFileSystem
+from webkitpy.w3c.directory_owners_extractor import DirectoryOwnersExtractor
+
+
+class DirectoryOwnersExtractorTest(unittest.TestCase):
+
+ def setUp(self):
+ self.filesystem = MockFileSystem()
+ self.extractor = DirectoryOwnersExtractor(self.filesystem)
+
+ def test_lines_to_owner_map(self):
+ lines = [
+ 'external/wpt/webgl [ Skip ]',
+ '## Owners: mek@chromium.org',
+ '# external/wpt/webmessaging [ Pass ]',
+ '## Owners: hta@chromium.org',
+ '# external/wpt/webrtc [ Pass ]',
+ 'external/wpt/websockets [ Skip ]',
+ '## Owners: michaeln@chromium.org,jsbell@chromium.org',
+ '# external/wpt/webstorage [ Pass ]',
+ 'external/wpt/webvtt [ Skip ]',
+ ]
+
+ self.assertEqual(
+ self.extractor.lines_to_owner_map(lines),
+ {
+ 'external/wpt/webmessaging': ['mek@chromium.org'],
+ 'external/wpt/webrtc': ['hta@chromium.org'],
+ 'external/wpt/webstorage': ['michaeln@chromium.org', 'jsbell@chromium.org'],
+ })
+
+ def test_list_owners(self):
+ self.extractor.owner_map = {
+ 'external/wpt/foo': ['a@chromium.org'],
+ 'external/wpt/bar': ['b@chromium.org'],
+ }
+ self.filesystem.files = {
+ '/mock-checkout/third_party/WebKit/LayoutTests/external/wpt/foo/x/y.html': '',
+ '/mock-checkout/third_party/WebKit/LayoutTests/external/wpt/bar/x/y.html': '',
+ '/mock-checkout/third_party/WebKit/LayoutTests/external/wpt/quux/x/y.html': '',
+ }
+ changed_files = [
+ 'third_party/WebKit/LayoutTests/external/wpt/foo/x/y.html',
+ 'third_party/WebKit/LayoutTests/external/wpt/quux/x/y.html',
+ ]
+ self.assertEqual(self.extractor.list_owners(changed_files), {'a@chromium.org': 'external/wpt/foo'})
+
+ def test_extract_owner_positive_cases(self):
+ self.assertEqual(self.extractor.extract_owners('## Owners: foo@chromium.org'), ['foo@chromium.org'])
+ self.assertEqual(self.extractor.extract_owners('# Owners: foo@chromium.org'), ['foo@chromium.org'])
+ self.assertEqual(self.extractor.extract_owners('## Owners: a@x.com,b@x.com'), ['a@x.com', 'b@x.com'])
+ self.assertEqual(self.extractor.extract_owners('## Owners: a@x.com, b@x.com'), ['a@x.com', 'b@x.com'])
+ self.assertEqual(self.extractor.extract_owners('## Owner: foo@chromium.org'), ['foo@chromium.org'])
+
+ def test_extract_owner_negative_cases(self):
+ self.assertIsNone(self.extractor.extract_owners(''))
+ self.assertIsNone(self.extractor.extract_owners('## Something: foo@chromium.org'))
+ self.assertIsNone(self.extractor.extract_owners('## Owners: not an email address'))
+
+ def test_extract_directory_positive_cases(self):
+ self.assertEqual(self.extractor.extract_directory('external/a/b [ Pass ]'), 'external/a/b')
+ self.assertEqual(self.extractor.extract_directory('# external/c/d [ Pass ]'), 'external/c/d')
+ self.assertEqual(self.extractor.extract_directory('# external/e/f [ Skip ]'), 'external/e/f')
+ self.assertEqual(self.extractor.extract_directory('# external/g/h/i [ Skip ]'), 'external/g/h/i')
+
+ def test_extract_directory_negative_cases(self):
+ self.assertIsNone(self.extractor.extract_directory(''))
+ self.assertIsNone(self.extractor.extract_directory('external/a/b [ Skip ]'))
+ self.assertIsNone(self.extractor.extract_directory('# some comment'))
« no previous file with comments | « third_party/WebKit/Tools/Scripts/webkitpy/w3c/directory_owners_extractor.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698