diff --git a/tests/unittest/test_file_filter.py b/tests/unittest/test_file_filter.py index b35e351f..064290f3 100644 --- a/tests/unittest/test_file_filter.py +++ b/tests/unittest/test_file_filter.py @@ -80,3 +80,27 @@ class TestIgnoreFilter: filtered_files = filter_ignored(files) assert filtered_files == expected, f"Expected {[file.filename for file in expected]}, but got {[file.filename for file in filtered_files]}." + + def test_language_framework_ignores(self, monkeypatch): + """ + Test files are ignored based on language/framework mapping (e.g., protobuf). + """ + monkeypatch.setattr(global_settings.config, 'ignore_language_framework', ['protobuf', 'go_gen']) + + files = [ + type('', (object,), {'filename': 'main.go'})(), + type('', (object,), {'filename': 'dir1/service.pb.go'})(), + type('', (object,), {'filename': 'dir1/dir/data_pb2.py'})(), + type('', (object,), {'filename': 'file.py'})(), + type('', (object,), {'filename': 'dir2/file_gen.go'})() + ] + expected = [ + files[0], + files[3] + ] + + filtered = filter_ignored(files) + assert filtered == expected, ( + f"Expected {[f.filename for f in expected]}, " + f"but got {[f.filename for f in filtered]}" + )