| OLD | NEW |
| 1 # Copyright (C) 2011 Google Inc. All rights reserved. | 1 # Copyright (C) 2011 Google Inc. All rights reserved. |
| 2 # | 2 # |
| 3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
| 4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
| 5 # met: | 5 # met: |
| 6 # | 6 # |
| 7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
| 8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
| 9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
| 10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 are OK, as are path expressions with forward slashes on Windows. | 55 are OK, as are path expressions with forward slashes on Windows. |
| 56 If paths is not given, we look at everything under |base_dir|. | 56 If paths is not given, we look at everything under |base_dir|. |
| 57 file_filter: A predicate function which takes three arguments: | 57 file_filter: A predicate function which takes three arguments: |
| 58 filesystem, dirname and filename. | 58 filesystem, dirname and filename. |
| 59 directory_sort_key: A sort key function. | 59 directory_sort_key: A sort key function. |
| 60 | 60 |
| 61 Returns: | 61 Returns: |
| 62 An iterable of absolute paths that were found. | 62 An iterable of absolute paths that were found. |
| 63 """ | 63 """ |
| 64 paths = paths or ['*'] | 64 paths = paths or ['*'] |
| 65 skipped_directories = skipped_directories or set(['.svn', '_svn']) | 65 skipped_directories = skipped_directories or set() |
| 66 absolute_paths = _normalize(filesystem, base_dir, paths) | 66 absolute_paths = _normalize(filesystem, base_dir, paths) |
| 67 return _normalized_find(filesystem, absolute_paths, skipped_directories, fil
e_filter, directory_sort_key) | 67 return _normalized_find(filesystem, absolute_paths, skipped_directories, fil
e_filter, directory_sort_key) |
| 68 | 68 |
| 69 | 69 |
| 70 def _normalize(filesystem, base_dir, paths): | 70 def _normalize(filesystem, base_dir, paths): |
| 71 return [filesystem.normpath(filesystem.join(base_dir, path)) for path in pat
hs] | 71 return [filesystem.normpath(filesystem.join(base_dir, path)) for path in pat
hs] |
| 72 | 72 |
| 73 | 73 |
| 74 def _normalized_find(filesystem, paths, skipped_directories, file_filter, direct
ory_sort_key): | 74 def _normalized_find(filesystem, paths, skipped_directories, file_filter, direct
ory_sort_key): |
| 75 """Finds the set of tests under the given list of paths.""" | 75 """Finds the set of tests under the given list of paths.""" |
| 76 paths_to_walk = itertools.chain(*(filesystem.glob(path) for path in paths)) | 76 paths_to_walk = itertools.chain(*(filesystem.glob(path) for path in paths)) |
| 77 | 77 |
| 78 def sort_by_directory_key(files_list): | 78 def sort_by_directory_key(files_list): |
| 79 if directory_sort_key: | 79 if directory_sort_key: |
| 80 files_list.sort(key=directory_sort_key) | 80 files_list.sort(key=directory_sort_key) |
| 81 return files_list | 81 return files_list |
| 82 | 82 |
| 83 return itertools.chain(*(sort_by_directory_key( | 83 return itertools.chain(*(sort_by_directory_key( |
| 84 filesystem.files_under(path, skipped_directories, file_filter)) for path
in paths_to_walk)) | 84 filesystem.files_under(path, skipped_directories, file_filter)) for path
in paths_to_walk)) |
| OLD | NEW |