mirror of
https://github.com/simonw/files-to-prompt.git
synced 2025-10-23 00:02:47 +03:00
Added passing test for nested .gitignore
Refs #40 - though I had hoped this test would fail.
This commit is contained in:
@@ -1,11 +1,17 @@
|
|||||||
import os
|
import os
|
||||||
import pytest
|
import pytest
|
||||||
|
import re
|
||||||
|
|
||||||
from click.testing import CliRunner
|
from click.testing import CliRunner
|
||||||
|
|
||||||
from files_to_prompt.cli import cli
|
from files_to_prompt.cli import cli
|
||||||
|
|
||||||
|
|
||||||
|
def filenames_from_cxml(cxml_string):
|
||||||
|
"Return set of filenames from <source>...</source> tags"
|
||||||
|
return set(re.findall(r"<source>(.*?)</source>", cxml_string))
|
||||||
|
|
||||||
|
|
||||||
def test_basic_functionality(tmpdir):
|
def test_basic_functionality(tmpdir):
|
||||||
runner = CliRunner()
|
runner = CliRunner()
|
||||||
with tmpdir.as_cwd():
|
with tmpdir.as_cwd():
|
||||||
@@ -44,23 +50,44 @@ def test_ignore_gitignore(tmpdir):
|
|||||||
runner = CliRunner()
|
runner = CliRunner()
|
||||||
with tmpdir.as_cwd():
|
with tmpdir.as_cwd():
|
||||||
os.makedirs("test_dir")
|
os.makedirs("test_dir")
|
||||||
|
os.makedirs("test_dir/nested_include")
|
||||||
|
os.makedirs("test_dir/nested_ignore")
|
||||||
with open("test_dir/.gitignore", "w") as f:
|
with open("test_dir/.gitignore", "w") as f:
|
||||||
f.write("ignored.txt")
|
f.write("ignored.txt")
|
||||||
with open("test_dir/ignored.txt", "w") as f:
|
with open("test_dir/ignored.txt", "w") as f:
|
||||||
f.write("This file should be ignored")
|
f.write("This file should be ignored")
|
||||||
with open("test_dir/included.txt", "w") as f:
|
with open("test_dir/included.txt", "w") as f:
|
||||||
f.write("This file should be included")
|
f.write("This file should be included")
|
||||||
|
with open("test_dir/nested_include/included2.txt", "w") as f:
|
||||||
|
f.write("This nested file should be included")
|
||||||
|
with open("test_dir/nested_ignore/.gitignore", "w") as f:
|
||||||
|
f.write("nested_ignore.txt")
|
||||||
|
with open("test_dir/nested_ignore/nested_ignore.txt", "w") as f:
|
||||||
|
f.write("This nested file should not be included")
|
||||||
|
with open("test_dir/nested_ignore/actually_include.txt", "w") as f:
|
||||||
|
f.write("This nested file should actually be included")
|
||||||
|
|
||||||
result = runner.invoke(cli, ["test_dir"])
|
result = runner.invoke(cli, ["test_dir", "-c"])
|
||||||
assert result.exit_code == 0
|
assert result.exit_code == 0
|
||||||
assert "test_dir/ignored.txt" not in result.output
|
filenames = filenames_from_cxml(result.output)
|
||||||
assert "test_dir/included.txt" in result.output
|
|
||||||
|
|
||||||
result = runner.invoke(cli, ["test_dir", "--ignore-gitignore"])
|
assert filenames == {
|
||||||
assert result.exit_code == 0
|
"test_dir/included.txt",
|
||||||
assert "test_dir/ignored.txt" in result.output
|
"test_dir/nested_include/included2.txt",
|
||||||
assert "This file should be ignored" in result.output
|
"test_dir/nested_ignore/actually_include.txt",
|
||||||
assert "test_dir/included.txt" in result.output
|
}
|
||||||
|
|
||||||
|
result2 = runner.invoke(cli, ["test_dir", "-c", "--ignore-gitignore"])
|
||||||
|
assert result2.exit_code == 0
|
||||||
|
filenames2 = filenames_from_cxml(result2.output)
|
||||||
|
|
||||||
|
assert filenames2 == {
|
||||||
|
"test_dir/included.txt",
|
||||||
|
"test_dir/ignored.txt",
|
||||||
|
"test_dir/nested_include/included2.txt",
|
||||||
|
"test_dir/nested_ignore/nested_ignore.txt",
|
||||||
|
"test_dir/nested_ignore/actually_include.txt",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def test_multiple_paths(tmpdir):
|
def test_multiple_paths(tmpdir):
|
||||||
|
|||||||
Reference in New Issue
Block a user