OLD | NEW |
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 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 | 102 |
103 def test_not_covered_by__set_noparent_works(self): | 103 def test_not_covered_by__set_noparent_works(self): |
104 self.assert_not_covered_by(['content/content.gyp'], [ben], | 104 self.assert_not_covered_by(['content/content.gyp'], [ben], |
105 ['content/content.gyp']) | 105 ['content/content.gyp']) |
106 | 106 |
107 def test_not_covered_by__valid_inputs(self): | 107 def test_not_covered_by__valid_inputs(self): |
108 db = self.db() | 108 db = self.db() |
109 | 109 |
110 # Check that we're passed in a sequence that isn't a string. | 110 # Check that we're passed in a sequence that isn't a string. |
111 self.assertRaises(AssertionError, db.files_not_covered_by, 'foo', []) | 111 self.assertRaises(AssertionError, db.files_not_covered_by, 'foo', []) |
112 self.assertRaises(AssertionError, db.files_not_covered_by, | 112 if hasattr(owners.collections, 'Iterable'): |
113 (f for f in ['x', 'y']), []) | 113 self.assertRaises(AssertionError, db.files_not_covered_by, |
| 114 (f for f in ['x', 'y']), []) |
114 | 115 |
115 # Check that the files are under the root. | 116 # Check that the files are under the root. |
116 db.root = '/checkout' | 117 db.root = '/checkout' |
117 self.assertRaises(AssertionError, db.files_not_covered_by, ['/OWNERS'], | 118 self.assertRaises(AssertionError, db.files_not_covered_by, ['/OWNERS'], |
118 []) | 119 []) |
119 db.root = '/' | 120 db.root = '/' |
120 | 121 |
121 # Check invalid email address. | 122 # Check invalid email address. |
122 self.assertRaises(AssertionError, db.files_not_covered_by, ['OWNERS'], | 123 self.assertRaises(AssertionError, db.files_not_covered_by, ['OWNERS'], |
123 ['foo']) | 124 ['foo']) |
124 | 125 |
125 | 126 |
126 def assert_reviewers_for(self, files, expected_reviewers): | 127 def assert_reviewers_for(self, files, expected_reviewers): |
127 db = self.db() | 128 db = self.db() |
128 self.assertEquals(db.reviewers_for(set(files)), set(expected_reviewers)) | 129 self.assertEquals(db.reviewers_for(set(files)), set(expected_reviewers)) |
129 | 130 |
130 def test_reviewers_for__basic_functionality(self): | 131 def test_reviewers_for__basic_functionality(self): |
131 self.assert_reviewers_for(['chrome/gpu/gpu_channel.h'], | 132 self.assert_reviewers_for(['chrome/gpu/gpu_channel.h'], |
132 [ken, ben, brett, owners.EVERYONE]) | 133 [ken, ben, brett, owners.EVERYONE]) |
133 | 134 |
134 def test_reviewers_for__set_noparent_works(self): | 135 def test_reviewers_for__set_noparent_works(self): |
135 self.assert_reviewers_for(['content/content.gyp'], [john, darin]) | 136 self.assert_reviewers_for(['content/content.gyp'], [john, darin]) |
136 | 137 |
137 def test_reviewers_for__valid_inputs(self): | 138 def test_reviewers_for__valid_inputs(self): |
138 db = self.db() | 139 db = self.db() |
139 | 140 |
140 # Check that we're passed in a sequence that isn't a string. | 141 # Check that we're passed in a sequence that isn't a string. |
141 self.assertRaises(AssertionError, db.reviewers_for, 'foo') | 142 self.assertRaises(AssertionError, db.reviewers_for, 'foo') |
142 self.assertRaises(AssertionError, db.reviewers_for, (f for f in ['x', 'y'])) | 143 if hasattr(owners.collections, 'Iterable'): |
| 144 self.assertRaises(AssertionError, db.reviewers_for, |
| 145 (f for f in ['x', 'y'])) |
143 | 146 |
144 # Check that the files are under the root. | 147 # Check that the files are under the root. |
145 db.root = '/checkout' | 148 db.root = '/checkout' |
146 self.assertRaises(AssertionError, db.reviewers_for, ['/OWNERS']) | 149 self.assertRaises(AssertionError, db.reviewers_for, ['/OWNERS']) |
147 | 150 |
148 def test_reviewers_for__wildcard_dir(self): | 151 def test_reviewers_for__wildcard_dir(self): |
149 self.assert_reviewers_for(['DEPS'], [owners.EVERYONE]) | 152 self.assert_reviewers_for(['DEPS'], [owners.EVERYONE]) |
150 | 153 |
151 def assert_syntax_error(self, owners_file_contents): | 154 def assert_syntax_error(self, owners_file_contents): |
152 db = self.db() | 155 db = self.db() |
(...skipping 10 matching lines...) Expand all Loading... |
163 | 166 |
164 def test_syntax_error__unknown_set(self): | 167 def test_syntax_error__unknown_set(self): |
165 self.assert_syntax_error('set myfatherisbillgates\n') | 168 self.assert_syntax_error('set myfatherisbillgates\n') |
166 | 169 |
167 def test_syntax_error__bad_email(self): | 170 def test_syntax_error__bad_email(self): |
168 self.assert_syntax_error('ben\n') | 171 self.assert_syntax_error('ben\n') |
169 | 172 |
170 | 173 |
171 if __name__ == '__main__': | 174 if __name__ == '__main__': |
172 unittest.main() | 175 unittest.main() |
OLD | NEW |