Data Fetching
This page outlines the unit tests for the validate_input_images()
function in the fetch_data
module, which ensures that the input directory contains valid image files before the pipeline proceeds.
Overview
The validate_input_images
function performs the following validations:
Confirms the existence of the input directory
Checks for at least one valid image file (
.jpg
,.jpeg
,.png
,.bmp
,.tiff
,.gif
)Raises a
ValueError
if the input directory is empty, nonexistent, or contains no valid images
Fixtures
temp_dirs(tmp_path)
Creates a temporary directory and populates it with a few dummy .jpg
and .png
files for positive test cases. Automatically cleaned up after test execution.
Test Cases
test_validate_input_images_success
Purpose:
Confirms that the function passes silently when valid image files are present.
Input:
A directory with .jpg
and .png
files.
Expected Result:
No exception is raised.
test_validate_input_images_empty_directory
Purpose:
Checks behavior when the input directory is empty.
Input:
An empty directory.
Expected Result:
Raises ValueError
with message:
"No images found in input directory"
test_validate_input_images_no_valid_images
Purpose:
Validates that directories containing only non-image files are flagged.
Input:
Files like .txt
, .csv
, and .json
.
Expected Result:
Raises ValueError
with message:
"No images found in input directory"
test_validate_input_images_mixed_files
Purpose:
Tests behavior when both image and non-image files are present.
Input:
A mix of image files and other files.
Expected Result:
No exception is raised.
test_validate_input_images_different_extensions
Purpose:
Ensures support for multiple common image file extensions.
Input:
Files with extensions: .jpg
, .jpeg
, .png
, .bmp
, .tiff
, .gif
.
Expected Result:
No exception is raised.
test_validate_input_images_nonexistent_directory
Purpose:
Handles the case when the input directory does not exist.
Input:
A non-existent directory path.
Expected Result:
Raises ValueError
with message:
"No images found in input directory"
Summary
These tests ensure the robustness of the input image validation logic by covering a variety of directory states:
Valid input
Empty folders
Nonexistent folders
Mixed or incorrect file types
Broad image extension support
All cases are automatically managed using pytest
and tmp_path
for isolation and reproducibility.