import os from typing import Any, Dict, Tuple import rtoml import yaml from joj3_config_generator.convert import convert_joj1 from joj3_config_generator.models import joj1 def read_convert_joj1_files(case_name: str) -> Tuple[joj1.Config, Dict[str, Any]]: root = os.path.dirname(os.path.realpath(__file__)) task_yaml_path = os.path.join(root, case_name, "task.yaml") with open(task_yaml_path) as f: task_yaml = f.read() task_toml_path = os.path.join(root, case_name, "task.toml") with open(task_toml_path) as f: task_toml = f.read() joj1_obj = yaml.safe_load(task_yaml) task_obj = rtoml.loads(task_toml) return joj1.Config(**joj1_obj), task_obj def load_case(case_name: str) -> None: joj1, expected_result = read_convert_joj1_files(case_name) result = convert_joj1(joj1).model_dump(by_alias=True, exclude_none=True) assert result == expected_result