44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
import os
|
|
from pathlib import Path
|
|
|
|
from pyucc.core.scanner import _normalize_extensions, find_source_files
|
|
|
|
|
|
def test_normalize_extensions():
|
|
exts = ["py", ".PY", "", " txt "]
|
|
out = _normalize_extensions(exts)
|
|
assert ".py" in out
|
|
assert ".txt" in out
|
|
assert "" not in out
|
|
|
|
|
|
def test_find_source_files_allowed_and_ignore(tmp_path):
|
|
# create directory tree
|
|
d = tmp_path / "proj"
|
|
d.mkdir()
|
|
sub = d / "sub"
|
|
sub.mkdir()
|
|
f1 = d / "a.py"
|
|
f1.write_text("print('hello')\n")
|
|
f2 = d / "b.txt"
|
|
f2.write_text("just text\n")
|
|
f3 = d / "bin.exe"
|
|
f3.write_text("binary")
|
|
f4 = sub / "c.py"
|
|
f4.write_text("# comment\n\nprint(1)\n")
|
|
|
|
# allowed extensions filter
|
|
found = find_source_files(d, allowed_extensions=['.py'])
|
|
found_names = {p.name for p in found}
|
|
assert 'a.py' in found_names
|
|
assert 'c.py' in found_names
|
|
assert 'b.txt' not in found_names
|
|
assert 'bin.exe' not in found_names
|
|
|
|
# ignore patterns (ignore sub directory)
|
|
found2 = find_source_files(d, allowed_extensions=None, ignore_patterns=['sub'])
|
|
names2 = {p.name for p in found2}
|
|
assert 'a.py' in names2
|
|
assert 'c.py' not in names2
|
|
|