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

Side by Side Diff: tests/owners_unittest.py

Issue 6639010: Add more tests for owners.py, remove unneeded code, make syntax errors more helpful (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 9 years, 9 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « owners.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Unit tests for owners.py.""" 6 """Unit tests for owners.py."""
7 7
8 import unittest 8 import unittest
9 9
10 import owners 10 import owners
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 def test_covered_by__everyone(self): 65 def test_covered_by__everyone(self):
66 self.assert_covered_by(['DEPS'], [john]) 66 self.assert_covered_by(['DEPS'], [john])
67 self.assert_covered_by(['DEPS'], [darin]) 67 self.assert_covered_by(['DEPS'], [darin])
68 68
69 def test_covered_by__explicit(self): 69 def test_covered_by__explicit(self):
70 self.assert_covered_by(['content/content.gyp'], [john]) 70 self.assert_covered_by(['content/content.gyp'], [john])
71 self.assert_covered_by(['chrome/gpu/OWNERS'], [ken]) 71 self.assert_covered_by(['chrome/gpu/OWNERS'], [ken])
72 72
73 def test_covered_by__owners_propagates_down(self): 73 def test_covered_by__owners_propagates_down(self):
74 self.assert_covered_by(['chrome/gpu/OWNERS'], [ben]) 74 self.assert_covered_by(['chrome/gpu/OWNERS'], [ben])
75
76 def test_covered_by__no_file_in_dir(self):
75 self.assert_covered_by(['/chrome/renderer/gpu/gpu_channel_host.h'], [peter]) 77 self.assert_covered_by(['/chrome/renderer/gpu/gpu_channel_host.h'], [peter])
76 78
77 def assert_not_covered_by(self, files, reviewers, unreviewed_files): 79 def assert_not_covered_by(self, files, reviewers, unreviewed_files):
78 db = self.db() 80 db = self.db()
79 self.assertEquals(db.files_not_covered_by(set(files), set(reviewers)), 81 self.assertEquals(db.files_not_covered_by(set(files), set(reviewers)),
80 set(unreviewed_files)) 82 set(unreviewed_files))
81 83
82 def test_not_covered_by__need_at_least_one_reviewer(self): 84 def test_not_covered_by__need_at_least_one_reviewer(self):
83 self.assert_not_covered_by(['DEPS'], [], ['DEPS']) 85 self.assert_not_covered_by(['DEPS'], [], ['DEPS'])
84 86
(...skipping 22 matching lines...) Expand all
107 def test_reviewers_for__set_noparent_works(self): 109 def test_reviewers_for__set_noparent_works(self):
108 self.assert_reviewers_for(['content/content.gyp'], [john, darin]) 110 self.assert_reviewers_for(['content/content.gyp'], [john, darin])
109 111
110 def test_reviewers_for__wildcard_dir(self): 112 def test_reviewers_for__wildcard_dir(self):
111 self.assert_reviewers_for(['DEPS'], [owners.EVERYONE]) 113 self.assert_reviewers_for(['DEPS'], [owners.EVERYONE])
112 114
113 def assert_syntax_error(self, owners_file_contents): 115 def assert_syntax_error(self, owners_file_contents):
114 db = self.db() 116 db = self.db()
115 self.files['/foo/OWNERS'] = owners_file_contents 117 self.files['/foo/OWNERS'] = owners_file_contents
116 self.files['/foo/DEPS'] = '' 118 self.files['/foo/DEPS'] = ''
117 self.assertRaises(owners.SyntaxErrorInOwnersFile, db.reviewers_for, 119 try:
118 ['/foo/DEPS']) 120 db.reviewers_for(['/foo/DEPS'])
121 self.fail() # pragma: no cover
122 except owners.SyntaxErrorInOwnersFile, e:
123 self.assertTrue(str(e).startswith('/foo/OWNERS:1'))
119 124
120 def test_syntax_error__unknown_token(self): 125 def test_syntax_error__unknown_token(self):
121 self.assert_syntax_error('{}\n') 126 self.assert_syntax_error('{}\n')
122 127
123 def test_syntax_error__unknown_set(self): 128 def test_syntax_error__unknown_set(self):
124 self.assert_syntax_error('set myfatherisbillgates\n') 129 self.assert_syntax_error('set myfatherisbillgates\n')
125 130
126 def test_syntax_error__bad_email(self): 131 def test_syntax_error__bad_email(self):
127 self.assert_syntax_error('ben\n') 132 self.assert_syntax_error('ben\n')
128 133
129 134
130 if __name__ == '__main__': 135 if __name__ == '__main__':
131 unittest.main() 136 unittest.main()
OLDNEW
« no previous file with comments | « owners.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698