Source code for ewoksscxrd.tests.test_createinifiles

import os
from os import PathLike
import pytest

from ewoksscxrd.tasks.createinifiles import CreateIniFiles


[docs] @pytest.mark.parametrize( "exists, ext, expected_count", [ (True, ".ini", 1), (True, ".INI", 1), (True, ".txt", 0), (False, ".ini", 0), ], ids=[ "valid_ini", "valid_ini_uppercase", "invalid_extension", "missing_file", ], ) def test_create_ini_files_various( tmp_path: PathLike, exists: bool, ext: str, expected_count: int ): """ Test createIniFiles task with different scenarios: - existing .ini file (lowercase) - existing .INI file (uppercase) - existing non-.ini file - missing .ini file """ # Setup source file path filename = f"config{ext}" src = tmp_path / filename if exists: # Write dummy ini content src.write_text("[section]\nkey=value") # Define output target (output path is used for directory resolution) output_target = tmp_path / "output_dir" / "ignored.ini" # Ensure the output directory exists so the copy won't fail os.makedirs(os.path.dirname(str(output_target)), exist_ok=True) # Execute the task task = CreateIniFiles( inputs={ "ini_file": str(src), "output": str(output_target), }, ) task.execute() result = task.get_output_values() saved = result.get("saved_files_path", []) # Verify number of saved files assert len(saved) == expected_count if expected_count == 1: # Check that the file was copied to the expected destination expected_path = str(tmp_path / "output_dir" / filename) assert saved == [expected_path] assert os.path.exists(expected_path) else: # No files should be copied assert saved == []