"""Tests for output formatting module.""" from cmdparse.formatters import format_csv, format_data, format_json, format_raw, format_yaml class TestFormatJson: def test_format_simple_list(self): data = [{"name": "John", "age": 30}] result = format_json(data) assert "John" in result assert "30" in result def test_format_empty_list(self): result = format_json([]) assert result == "[]" def test_pretty_format(self): data = [{"name": "John"}] result = format_json(data, pretty=True) assert "\n" in result def test_compact_format(self): data = [{"name": "John"}] result = format_json(data, pretty=False) assert "\n" not in result class TestFormatYaml: def test_format_simple_list(self): data = [{"name": "John", "age": 30}] result = format_yaml(data) assert "John" in result assert "age" in result def test_format_empty_list(self): result = format_yaml([]) assert result == "[]\n" def test_format_nested_structure(self): data = [{"user": {"name": "John", "tags": ["a", "b"]}}] result = format_yaml(data) assert "John" in result class TestFormatCsv: def test_format_simple_list(self): data = [{"name": "John", "age": 30}] result = format_csv(data) assert "name" in result assert "John" in result assert "age" in result def test_format_empty_list(self): result = format_csv([]) assert result == "" def test_format_multiple_rows(self): data = [{"name": "John", "age": 30}, {"name": "Jane", "age": 25}] result = format_csv(data) assert "John" in result assert "Jane" in result class TestFormatRaw: def test_format_simple_list(self): data = [{"name": "John", "age": 30}] result = format_raw(data) assert "name: John" in result assert "age: 30" in result def test_format_empty_list(self): result = format_raw([]) assert result == "" class TestFormatData: def test_json_format(self): data = [{"name": "John"}] result = format_data(data, "json") assert "John" in result def test_yaml_format(self): data = [{"name": "John"}] result = format_data(data, "yaml") assert "John" in result def test_csv_format(self): data = [{"name": "John"}] result = format_data(data, "csv") assert "name" in result def test_raw_format(self): data = [{"name": "John"}] result = format_data(data, "raw") assert "John" in result def test_default_to_json(self): data = [{"name": "John"}] result = format_data(data, "") assert "John" in result def test_unknown_format_defaults_to_json(self): data = [{"name": "John"}] result = format_data(data, "unknown") assert "John" in result