| 3292 | |
| 3293 | |
| 3294 | def test_cli_serialize_styles(): |
| 3295 | class Cfg(BaseModel): |
| 3296 | my_list: list[int] |
| 3297 | my_dict: dict[str, int] |
| 3298 | |
| 3299 | cfg = Cfg(my_list=[1, 2, 3], my_dict={'a': 1, 'b': 2, 'c': 3}) |
| 3300 | |
| 3301 | serialized_cli_args = CliApp.serialize(cfg, list_style='lazy') |
| 3302 | assert CliApp.run(Cfg, cli_args=serialized_cli_args).model_dump() == cfg.model_dump() |
| 3303 | assert serialized_cli_args == ['--my-list', '1,2,3', '--my-dict', '{"a": 1, "b": 2, "c": 3}'] |
| 3304 | |
| 3305 | serialized_cli_args = CliApp.serialize(cfg, list_style='argparse') |
| 3306 | assert CliApp.run(Cfg, cli_args=serialized_cli_args).model_dump() == cfg.model_dump() |
| 3307 | assert serialized_cli_args == [ |
| 3308 | '--my-list', |
| 3309 | '1', |
| 3310 | '--my-list', |
| 3311 | '2', |
| 3312 | '--my-list', |
| 3313 | '3', |
| 3314 | '--my-dict', |
| 3315 | '{"a": 1, "b": 2, "c": 3}', |
| 3316 | ] |
| 3317 | |
| 3318 | serialized_cli_args = CliApp.serialize(cfg, dict_style='env') |
| 3319 | assert CliApp.run(Cfg, cli_args=serialized_cli_args).model_dump() == cfg.model_dump() |
| 3320 | assert serialized_cli_args == [ |
| 3321 | '--my-list', |
| 3322 | '[1, 2, 3]', |
| 3323 | '--my-dict', |
| 3324 | 'a=1', |
| 3325 | '--my-dict', |
| 3326 | 'b=2', |
| 3327 | '--my-dict', |
| 3328 | 'c=3', |
| 3329 | ] |
| 3330 | |
| 3331 | |
| 3332 | def test_cli_decoding(): |