Add exporters, utils, and tests
Some checks failed
CI / test (push) Has been cancelled
CI / lint (push) Has been cancelled

This commit is contained in:
2026-01-30 05:31:00 +00:00
parent bcc6c78791
commit 1c075a28ac

78
.tests/test_ascii.py Normal file
View File

@@ -0,0 +1,78 @@
"""Tests for ASCII generator."""
import pytest
from termflow.exporters.ascii_generator import ASCIIGenerator, GitGraphGenerator
class TestASCIIGenerator:
"""Test ASCII generator."""
def test_generate_empty(self):
"""Test generating empty diagram."""
gen = ASCIIGenerator()
result = gen.generate_from_commands([])
assert result is not None
def test_generate_single_command(self):
"""Test generating diagram with single command."""
gen = ASCIIGenerator()
result = gen.generate_from_commands(["ls -la"])
assert "ls -la" in result
def test_generate_multiple_commands(self):
"""Test generating diagram with multiple commands."""
gen = ASCIIGenerator()
commands = ["ls -la", "cd /tmp", "pwd"]
result = gen.generate_from_commands(commands)
for cmd in commands:
assert cmd in result
def test_different_styles(self):
"""Test different visualization styles."""
commands = ["ls -la", "cd /tmp", "pwd"]
for style in ["compact", "detailed", "minimal"]:
gen = ASCIIGenerator(style=style)
result = gen.generate_from_commands(commands, {"title": "Test"})
assert result is not None
def test_with_metadata(self):
"""Test generating with metadata."""
gen = ASCIIGenerator()
commands = ["ls -la", "cd /tmp"]
metadata = {"title": "Test Session", "command_count": len(commands)}
result = gen.generate_from_commands(commands, metadata)
assert "Test Session" in result
assert str(len(commands)) in result
class TestGitGraphGenerator:
"""Test git graph generator."""
def test_generate_empty(self):
"""Test generating empty graph."""
gen = GitGraphGenerator()
class MockParser:
commits = []
result = gen.generate_from_parser(MockParser())
assert result is not None
def test_generate_with_commits(self):
"""Test generating graph with commits."""
gen = GitGraphGenerator()
class MockCommit:
def __init__(self, hash, message):
self.hash = hash
self.message = message
self.parents = []
class MockParser:
commits = [MockCommit("abc123", "Initial commit"), MockCommit("def456", "Add feature")]
result = gen.generate_from_parser(MockParser())
assert "abc123" in result
assert "def456" in result