blob: fc84ee7c171343e21c887acce306da2763bf038c [file] [log] [blame] [edit]
#!/usr/bin/env python3
# Copyright 2021 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import re
import unittest
import filters
import utils
class TestFilters(unittest.TestCase):
def _build_file_list(self, files):
return [
utils.GitFile(path.encode(), None, hash(path)) for path in files
]
def test_filters(self):
test_filter = filters.Filter([re.compile(rb'want.*')],
[re.compile(rb'want_excluded.*')],
[re.compile(rb'want_excluded_always.*')])
self.assertEquals(
test_filter.filter_files(
self._build_file_list([
'want/xxx',
'want_excluded/xxx',
'want_excluded_always/xxx',
'unrelated_upstream_file',
])),
self._build_file_list(
['want/xxx', 'want_excluded_always/xxx']),
)
def test_path_filter(self):
test_filter = filters.Filter([filters.PathFilter([b'a/b/c', b'd'])], [],
[])
self.assertEquals(
test_filter.filter_files(
self._build_file_list(
['a', 'b', 'c', 'a/b', 'b/c', 'a/b/c', 'd'])),
self._build_file_list(['a/b/c', 'd']))