Coverage for scripts/tests/test_rename_files.py: 100%
25 statements
« prev ^ index » next coverage.py v7.10.2, created at 2025-08-07 15:22 +0000
« prev ^ index » next coverage.py v7.10.2, created at 2025-08-07 15:22 +0000
1import os
2import tempfile
3import re
4import pytest
6from scripts.rename_files import rename_images_labels # Replace with actual import
8def test_rename_images_labels():
9 with tempfile.TemporaryDirectory() as temp_img_dir, tempfile.TemporaryDirectory() as temp_lbl_dir:
10 # Create image files with complex names
11 img_names = [
12 "image1_jpg123.jpg",
13 "image2_jpg456.jpg",
14 "image3.png",
15 "not_an_image.txt", # Should be ignored
16 ]
18 # Create label files corresponding to images
19 lbl_names = [
20 "image1_jpg123.txt",
21 "image2_jpg456.txt",
22 "image3.txt",
23 ]
25 # Create files in temp dirs
26 for name in img_names:
27 open(os.path.join(temp_img_dir, name), 'w').close()
28 for name in lbl_names:
29 open(os.path.join(temp_lbl_dir, name), 'w').close()
31 # Run your renaming function
32 rename_images_labels(temp_img_dir, temp_lbl_dir)
34 # List resulting files
35 renamed_images = sorted(os.listdir(temp_img_dir))
36 renamed_labels = sorted(os.listdir(temp_lbl_dir))
38 # Assert images were renamed correctly (suffix _jpg* removed)
39 assert "image1.jpg" in renamed_images
40 assert "image2.jpg" in renamed_images
41 assert "image3.png" in renamed_images
42 assert "not_an_image.txt" in renamed_images # Not renamed
44 # Assert labels renamed accordingly
45 assert "image1.txt" in renamed_labels
46 assert "image2.txt" in renamed_labels
47 assert "image3.txt" in renamed_labels
49 # Ensure old label names are gone
50 assert "image1_jpg123.txt" not in renamed_labels
51 assert "image2_jpg456.txt" not in renamed_labels