106 lines
2.9 KiB
Python
106 lines
2.9 KiB
Python
"""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
|