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

1import os 

2import tempfile 

3import re 

4import pytest 

5 

6from scripts.rename_files import rename_images_labels # Replace with actual import 

7 

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 ] 

17 

18 # Create label files corresponding to images 

19 lbl_names = [ 

20 "image1_jpg123.txt", 

21 "image2_jpg456.txt", 

22 "image3.txt", 

23 ] 

24 

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() 

30 

31 # Run your renaming function 

32 rename_images_labels(temp_img_dir, temp_lbl_dir) 

33 

34 # List resulting files 

35 renamed_images = sorted(os.listdir(temp_img_dir)) 

36 renamed_labels = sorted(os.listdir(temp_lbl_dir)) 

37 

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 

43 

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 

48 

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