diff --git a/src/con_duct/suite/ls.py b/src/con_duct/suite/ls.py index cb66d86..75c765f 100644 --- a/src/con_duct/suite/ls.py +++ b/src/con_duct/suite/ls.py @@ -173,7 +173,8 @@ def ls(args: argparse.Namespace) -> int: elif args.format == "json_pp": print(json.dumps(output_rows, indent=2)) elif args.format == "yaml": - print(yaml.dump(output_rows, default_flow_style=False)) + plain_rows = [dict(row) for row in output_rows] + print(yaml.dump(plain_rows, default_flow_style=False)) else: raise RuntimeError( f"Unexpected format encountered: {args.format}. This should have been caught by argparse.", diff --git a/test/test_suite.py b/test/test_suite.py index d9d7859..467ad00 100644 --- a/test/test_suite.py +++ b/test/test_suite.py @@ -8,8 +8,7 @@ import unittest from unittest.mock import MagicMock, mock_open, patch import pytest - -# import yaml +import yaml from con_duct.suite import main, plot, pprint_json from con_duct.suite.ls import MINIMUM_SCHEMA_VERSION, ls @@ -228,11 +227,10 @@ def test_ls_json_pp_output(self) -> None: for entry in parsed: self.assertIn("prefix", entry) - # def test_ls_yaml_output(self) -> None: - # """Test YAML output format.""" - # result = self._run_ls("file*", "yaml") - # import ipdb; ipdb.set_trace() - # parsed = yaml.safe_load(result) - # self.assertEqual(len(parsed), 2) - # for entry in parsed: - # self.assertIn("prefix", entry) + def test_ls_yaml_output(self) -> None: + """Test YAML output format.""" + result = self._run_ls("file*", "yaml") + parsed = yaml.safe_load(result) + self.assertEqual(len(parsed), 2) + for entry in parsed: + self.assertIn("prefix", entry)