From 773dbdb314a6c755a7742151f921eef52bb6a1af Mon Sep 17 00:00:00 2001 From: RyanL2004 Date: Thu, 9 Jan 2025 03:45:41 +0000 Subject: [PATCH 1/2] Add test for *.txt include pattern filtering --- tests/test_query_ingestion.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/tests/test_query_ingestion.py b/tests/test_query_ingestion.py index a74e8265..616fd6b1 100644 --- a/tests/test_query_ingestion.py +++ b/tests/test_query_ingestion.py @@ -57,7 +57,26 @@ def test_read_file_content_with_non_notebook(tmp_path: Path): mock_process.assert_not_called() -# TODO: test with include patterns: ['*.txt'] +# Test that when using a ['*.txt'] as include pattern, only .txt files are processed & .py files are excluded +def test_include_txt_pattern(temp_directory: Path, sample_query: dict[str, Any]) -> None: + sample_query["local_path"] = temp_directory + sample_query["include_patterns"] = ["*.txt"] + + result = _scan_directory(temp_directory, query=sample_query) + assert result is not None, "Result should not be None" + + files = _extract_files_content(query=sample_query, node=result, max_file_size=1_000_000) + file_paths = [f["path"] for f in files] + assert len(files) == 5, "Should have found exactly 5 .txt files" + assert all(path.endswith(".txt") for path in file_paths), "Should only include .txt files" + + expected_files = ["file1.txt", "subfile1.txt", "file_subdir.txt", "file_dir1.txt", "file_dir2.txt"] + for expected_file in expected_files: + assert any(expected_file in path for path in file_paths), f"Missing expected file: {expected_file}" + + assert not any(path.endswith(".py") for path in file_paths), "Should not include .py files" + + # TODO: test with wrong include patterns: ['*.qwerty'] From 2d1a4282b57da14fc890ad84d7dc5247069e7b35 Mon Sep 17 00:00:00 2001 From: RyanL2004 Date: Fri, 10 Jan 2025 17:24:20 +0000 Subject: [PATCH 2/2] Add test case for non-exist file extension pattern handling --- tests/test_query_ingestion.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/tests/test_query_ingestion.py b/tests/test_query_ingestion.py index 616fd6b1..65af7bee 100644 --- a/tests/test_query_ingestion.py +++ b/tests/test_query_ingestion.py @@ -77,7 +77,22 @@ def test_include_txt_pattern(temp_directory: Path, sample_query: dict[str, Any]) assert not any(path.endswith(".py") for path in file_paths), "Should not include .py files" -# TODO: test with wrong include patterns: ['*.qwerty'] +def test_include_nonexistent_extension(temp_directory: Path, sample_query: dict[str, Any]) -> None: + sample_query["local_path"] = temp_directory + sample_query["include_patterns"] = ["*.query"] # Is a Non existant extension ? + + result = _scan_directory(temp_directory, query=sample_query) + assert result is not None, "Result should not be None" + + # Extract the files content & set file limit cap + files = _extract_files_content(query=sample_query, node=result, max_file_size=1_000_000) + # Verify no file processed with wrong extension + assert len(files) == 0, "Should not find any files with .qwerty extension" + + assert result["type"] == "directory" + assert result["file_count"] == 0 + assert result["dir_count"] == 0 + assert len(result["children"]) == 0 # single folder patterns