OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 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 """Tests for checkdeps. | 6 """Tests for checkdeps. |
7 """ | 7 """ |
8 | 8 |
9 import os | 9 import os |
10 import unittest | 10 import unittest |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 dirs_traversed = [] | 191 dirs_traversed = [] |
192 for rules, filenames in self.deps_checker.GetAllRulesAndFiles(): | 192 for rules, filenames in self.deps_checker.GetAllRulesAndFiles(): |
193 self.failUnlessEqual(type(filenames), list) | 193 self.failUnlessEqual(type(filenames), list) |
194 self.failUnlessEqual(filenames, sorted(filenames)) | 194 self.failUnlessEqual(filenames, sorted(filenames)) |
195 if filenames: | 195 if filenames: |
196 dir_names = set(os.path.dirname(file) for file in filenames) | 196 dir_names = set(os.path.dirname(file) for file in filenames) |
197 self.failUnlessEqual(1, len(dir_names)) | 197 self.failUnlessEqual(1, len(dir_names)) |
198 dirs_traversed.append(dir_names.pop()) | 198 dirs_traversed.append(dir_names.pop()) |
199 self.failUnlessEqual(dirs_traversed, sorted(dirs_traversed)) | 199 self.failUnlessEqual(dirs_traversed, sorted(dirs_traversed)) |
200 | 200 |
| 201 def testCheckPartialImportsAreAllowed(self): |
| 202 problems = self.deps_checker.CheckAddedProtoImports( |
| 203 [['checkdeps/testdata/test.proto', |
| 204 ['import "no_rule_for_this/nogood.proto"'] |
| 205 ]]) |
| 206 self.failIf(problems) |
| 207 |
| 208 def testCheckAddedFullPathImportsAllowed(self): |
| 209 # NOTE: Base directory is buildtools. |
| 210 problems = self.deps_checker.CheckAddedProtoImports( |
| 211 [['checkdeps/testdata/test.proto', |
| 212 ['import "checkdeps/testdata/allowed/good.proto"', |
| 213 'import "checkdeps/testdata/disallowed/sub_folder/good.proto"'] |
| 214 ]]) |
| 215 self.failIf(problems) |
| 216 |
| 217 def testCheckAddedFullPathImportsDisallowed(self): |
| 218 problems = self.deps_checker.CheckAddedProtoImports( |
| 219 [['checkdeps/testdata/test.proto', |
| 220 ['import "checkdeps/testdata/disallowed/bad.proto"'] |
| 221 ]]) |
| 222 self.failUnless(problems) |
| 223 |
| 224 def testCheckAddedFullPathImportsManyGarbageLines(self): |
| 225 garbage_lines = ["My name is Sam%d\n" % num for num in range(50)] |
| 226 problems = self.deps_checker.CheckAddedProtoImports( |
| 227 [['checkdeps/testdata/test.proto', |
| 228 garbage_lines]]) |
| 229 self.failIf(problems) |
| 230 |
| 231 def testCheckAddedIncludesNoRuleFullPath(self): |
| 232 problems = self.deps_checker.CheckAddedProtoImports( |
| 233 [['checkdeps/testdata/test.proto', |
| 234 ['import "../tools/some.proto"'] |
| 235 ]]) |
| 236 self.failUnless(problems) |
201 | 237 |
202 if __name__ == '__main__': | 238 if __name__ == '__main__': |
203 unittest.main() | 239 unittest.main() |
OLD | NEW |