Skip to content
This repository was archived by the owner on Jul 16, 2025. It is now read-only.

Commit 9ec7924

Browse files
committed
implement fallback list_relevant_files in terms of search_files
1 parent 64550f7 commit 9ec7924

File tree

3 files changed

+19
-30
lines changed

3 files changed

+19
-30
lines changed

codecov_cli/helpers/versioning_systems.py

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
from itertools import chain
22
import logging
3+
import re
34
import subprocess
45
import typing as t
56
from pathlib import Path
67
from shutil import which
78

89
from codecov_cli.fallbacks import FallbackFieldEnum
10+
from codecov_cli.helpers.folder_searcher import search_files
911
from codecov_cli.helpers.git import parse_git_service, parse_slug
1012
from abc import ABC, abstractmethod
1113

@@ -193,22 +195,7 @@ def list_relevant_files(
193195
if dir_to_use is None:
194196
raise ValueError("Can't determine root folder")
195197

196-
cmd = [
197-
"find",
198-
str(dir_to_use),
199-
*chain.from_iterable(
200-
["-name", block, "-prune", "-o"] for block in IGNORE_DIRS
201-
),
202-
*chain.from_iterable(
203-
["-path", block, "-prune", "-o"] for block in IGNORE_PATHS
204-
),
205-
"-type",
206-
"f",
207-
"-print",
208-
]
209-
res = subprocess.run(cmd, capture_output=True)
210-
return [
211-
filename
212-
for filename in res.stdout.decode("unicode_escape").strip().split("\n")
213-
if filename
214-
]
198+
files = search_files(
199+
dir_to_use, folders_to_ignore=[], filename_include_regex=re.compile("")
200+
)
201+
return [f.relative_to(dir_to_use).as_posix() for f in files]

tests/helpers/test_versioning_systems.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
import pytest
44

55
from codecov_cli.fallbacks import FallbackFieldEnum
6-
from codecov_cli.helpers.versioning_systems import GitVersioningSystem
6+
from codecov_cli.helpers.versioning_systems import (
7+
GitVersioningSystem,
8+
NoVersioningSystem,
9+
)
710

811

912
class TestGitVersioningSystem(object):
@@ -150,3 +153,12 @@ def test_exotic_git_filenames():
150153
assert (
151154
"tests/data/Контроллеры/Пользователь/ГлавныйКонтроллер.php" in found_repo_files
152155
)
156+
157+
158+
def test_exotic_fallback_filenames():
159+
vs = NoVersioningSystem()
160+
found_repo_files = vs.list_relevant_files()
161+
162+
assert (
163+
"tests/data/Контроллеры/Пользователь/ГлавныйКонтроллер.php" in found_repo_files
164+
)

tests/services/upload/test_upload_collector.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
from pathlib import Path
22
from unittest.mock import patch
3-
import pytest
4-
import sys
53

64
from codecov_cli.helpers.versioning_systems import (
75
GitVersioningSystem,
@@ -191,10 +189,6 @@ def test_generate_upload_data(tmp_path):
191189

192190

193191
@patch("codecov_cli.services.upload.upload_collector.logger")
194-
@pytest.mark.skipif(
195-
sys.platform == "win32",
196-
reason="the fallback `list_relevant_files` is currently broken on windows",
197-
)
198192
def test_generate_upload_data_with_none_network(mock_logger, tmp_path):
199193
(tmp_path / "coverage.xml").touch()
200194

@@ -215,10 +209,6 @@ def test_generate_upload_data_with_none_network(mock_logger, tmp_path):
215209
assert len(res.file_fixes) > 1
216210

217211

218-
@pytest.mark.skipif(
219-
sys.platform == "win32",
220-
reason="the fallback `list_relevant_files` is currently broken on windows",
221-
)
222212
def test_generate_network_with_no_versioning_system(tmp_path):
223213
versioning_system = NoVersioningSystem()
224214
found_files = versioning_system.list_relevant_files()

0 commit comments

Comments
 (0)