import os import fitz import pytest from PIL import Image from src.utils import (determine_file_type, get_bytes_from_path, get_images_from_path, get_PIL_image_from_path) IMAGE_FILE_PATH = 'test.jpg' PDF_FILE_PATH = 'test.pdf' @pytest.fixture def pdf_file(): doc = fitz.open() page1 = doc.new_page() page1.insert_text((72, 72), "This is a test PDF created with PyMuPDF. Page 1") page2 = doc.new_page() page2.insert_text((72, 72), "This is a test PDF created with PyMuPDF. Page 2") doc.save(PDF_FILE_PATH) doc.close() yield PDF_FILE_PATH os.remove(PDF_FILE_PATH) @pytest.fixture def image_file(): image = Image.new('RGB', (10, 10), color='red') image.save(IMAGE_FILE_PATH) yield IMAGE_FILE_PATH os.remove(IMAGE_FILE_PATH) def test_determine_file_type(pdf_file, image_file): assert determine_file_type(pdf_file) == 'pdf' assert determine_file_type(image_file) == 'image' def test_get_bytes_from_path(pdf_file): with open(pdf_file, 'rb') as f: expected_bytes = f.read() assert get_bytes_from_path(pdf_file) == expected_bytes def test_get_PIL_image_from_path(image_file): image = get_PIL_image_from_path(image_file) assert isinstance(image, Image.Image) def test_get_images_from_pdf_path(pdf_file): images = get_images_from_path(pdf_file) assert len(images) == 2 assert all([isinstance(obj, Image.Image) for obj in images]) def test_get_images_from_one_image_path(image_file): images = get_images_from_path(image_file) assert len(images) == 1