Initial upload: config-converter-cli v1.0.0
This commit is contained in:
80
tests/test_formatters.py
Normal file
80
tests/test_formatters.py
Normal file
@@ -0,0 +1,80 @@
|
||||
"""Tests for the formatter module."""
|
||||
|
||||
import json
|
||||
import pytest
|
||||
|
||||
from configconverter.formatters import Formatter
|
||||
from configconverter.exceptions import IndentationError
|
||||
|
||||
|
||||
class TestFormatter:
|
||||
"""Tests for the Formatter class."""
|
||||
|
||||
@pytest.fixture
|
||||
def formatter(self):
|
||||
return Formatter()
|
||||
|
||||
def test_format_json_with_indent_2(self, formatter):
|
||||
content = '{"name":"test","value":123}'
|
||||
result = formatter.format(content, indent=2, format="json")
|
||||
assert "\n " in result
|
||||
|
||||
def test_format_json_with_indent_4(self, formatter):
|
||||
content = '{"name":"test","value":123}'
|
||||
result = formatter.format(content, indent=4, format="json")
|
||||
assert "\n " in result
|
||||
|
||||
def test_format_json_compact(self, formatter):
|
||||
content = '{"name":"test","value":123}'
|
||||
result = formatter.format(content, indent=2, compact=True, format="json")
|
||||
assert result.strip() == '{"name":"test","value":123}'
|
||||
|
||||
def test_format_invalid_indent(self, formatter):
|
||||
content = '{"name":"test"}'
|
||||
with pytest.raises(IndentationError):
|
||||
formatter.format(content, indent=3, format="json")
|
||||
|
||||
def test_format_json_to_yaml(self, formatter):
|
||||
content = '{"name": "test", "value": 123}'
|
||||
result = formatter.format(content, format="yaml")
|
||||
assert "name: test" in result
|
||||
|
||||
def test_format_yaml_to_json(self, formatter):
|
||||
content = 'name: test\nvalue: 123\n'
|
||||
result = formatter.format(content, format="json")
|
||||
data = json.loads(result)
|
||||
assert data["name"] == "test"
|
||||
assert data["value"] == 123
|
||||
|
||||
def test_format_toml_to_json(self, formatter):
|
||||
content = 'name = "test"\nvalue = 123\n'
|
||||
result = formatter.format(content, format="json")
|
||||
data = json.loads(result)
|
||||
assert data["name"] == "test"
|
||||
assert data["value"] == 123
|
||||
|
||||
def test_to_json_method(self, formatter):
|
||||
content = 'name: test\n'
|
||||
result = formatter.to_json(content, indent=4)
|
||||
data = json.loads(result)
|
||||
assert data["name"] == "test"
|
||||
|
||||
def test_to_yaml_method(self, formatter):
|
||||
content = '{"name": "test"}'
|
||||
result = formatter.to_yaml(content)
|
||||
assert "name: test" in result
|
||||
|
||||
def test_to_toml_method(self, formatter):
|
||||
content = '{"name": "test"}'
|
||||
result = formatter.to_toml(content)
|
||||
assert 'name = "test"' in result
|
||||
|
||||
def test_nested_structure_formatting(self, formatter):
|
||||
content = '{"a":{"b":{"c":"d"}}}'
|
||||
result = formatter.format(content, indent=2, format="json")
|
||||
assert '"c": "d"' in result
|
||||
|
||||
def test_array_formatting(self, formatter):
|
||||
content = '[1,2,3,4,5]'
|
||||
result = formatter.format(content, indent=2, format="json")
|
||||
assert "[\n 1," in result
|
||||
Reference in New Issue
Block a user