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.