fix: remove unused imports from test files
Some checks failed
CI / test (push) Has been cancelled

This commit is contained in:
2026-02-04 11:22:15 +00:00
parent 0716ccc279
commit 02c5e14706

236
.tests/test_history.py Normal file
View File

@@ -0,0 +1,236 @@
"""Tests for ShellGenius history module."""
import os
import tempfile
from shellgenius.history import HistoryEntry, HistoryLearner, HistoryStorage
class TestHistoryEntry:
"""Test history entry dataclass."""
def test_entry_creation(self):
"""Test creating a history entry."""
entry = HistoryEntry(
id="test-id",
timestamp="2024-01-01T00:00:00",
description="Test description",
commands=["cmd1", "cmd2"],
shell_type="bash",
)
assert entry.id == "test-id"
assert len(entry.commands) == 2
assert entry.usage_count == 1
class TestHistoryStorage:
"""Test history storage."""
def test_add_and_get_entry(self):
"""Test adding and retrieving entries."""
with tempfile.TemporaryDirectory() as tmpdir:
storage_path = os.path.join(tmpdir, "history.yaml")
storage = HistoryStorage(storage_path)
entry = HistoryEntry(
id="test-id",
timestamp="2024-01-01T00:00:00",
description="Test",
commands=["echo hello"],
shell_type="bash",
)
storage.add_entry(entry)
entries = storage.get_entries()
assert len(entries) == 1
assert entries[0].description == "Test"
def test_search_entries(self):
"""Test searching entries."""
with tempfile.TemporaryDirectory() as tmpdir:
storage_path = os.path.join(tmpdir, "history.yaml")
storage = HistoryStorage(storage_path)
entry = HistoryEntry(
id="test-id",
timestamp="2024-01-01T00:00:00",
description="Find Python files",
commands=["find . -name *.py"],
shell_type="bash",
)
storage.add_entry(entry)
results = storage.search("python", limit=10)
assert len(results) == 1
def test_get_popular(self):
"""Test getting popular entries."""
with tempfile.TemporaryDirectory() as tmpdir:
storage_path = os.path.join(tmpdir, "history.yaml")
storage = HistoryStorage(storage_path)
entry = HistoryEntry(
id="test-id",
timestamp="2024-01-01T00:00:00",
description="Test",
commands=["echo hello"],
shell_type="bash",
usage_count=5,
)
storage.add_entry(entry)
popular = storage.get_popular(limit=10)
assert len(popular) == 1
assert popular[0].usage_count == 5
def test_update_usage(self):
"""Test updating usage count."""
with tempfile.TemporaryDirectory() as tmpdir:
storage_path = os.path.join(tmpdir, "history.yaml")
storage = HistoryStorage(storage_path)
entry = HistoryEntry(
id="test-id",
timestamp="2024-01-01T00:00:00",
description="Test",
commands=["echo hello"],
shell_type="bash",
)
storage.add_entry(entry)
storage.update_usage("test-id")
entries = storage.get_entries()
assert entries[0].usage_count == 2
def test_delete_entry(self):
"""Test deleting entry."""
with tempfile.TemporaryDirectory() as tmpdir:
storage_path = os.path.join(tmpdir, "history.yaml")
storage = HistoryStorage(storage_path)
entry = HistoryEntry(
id="test-id",
timestamp="2024-01-01T00:00:00",
description="Test",
commands=["echo hello"],
shell_type="bash",
)
storage.add_entry(entry)
storage.delete_entry("test-id")
entries = storage.get_entries()
assert len(entries) == 0
def test_clear_history(self):
"""Test clearing all history."""
with tempfile.TemporaryDirectory() as tmpdir:
storage_path = os.path.join(tmpdir, "history.yaml")
storage = HistoryStorage(storage_path)
for i in range(3):
entry = HistoryEntry(
id=f"test-{i}",
timestamp="2024-01-01T00:00:00",
description=f"Test {i}",
commands=[f"echo {i}"],
shell_type="bash",
)
storage.add_entry(entry)
storage.clear()
entries = storage.get_entries()
assert len(entries) == 0
def test_limit_and_offset(self):
"""Test limit and offset for retrieval."""
with tempfile.TemporaryDirectory() as tmpdir:
storage_path = os.path.join(tmpdir, "history.yaml")
storage = HistoryStorage(storage_path)
for i in range(5):
entry = HistoryEntry(
id=f"test-{i}",
timestamp="2024-01-01T00:00:00",
description=f"Test {i}",
commands=[f"echo {i}"],
shell_type="bash",
)
storage.add_entry(entry)
entries = storage.get_entries(limit=2, offset=2)
assert len(entries) == 2
class TestHistoryLearner:
"""Test history learning functionality."""
def test_learn(self):
"""Test learning from commands."""
with tempfile.TemporaryDirectory() as tmpdir:
storage_path = os.path.join(tmpdir, "history.yaml")
learner = HistoryLearner()
learner.storage = HistoryStorage(storage_path)
entry = learner.learn(
description="List files",
commands=["ls -la"],
shell_type="bash",
)
assert entry is not None
assert "List files" in entry.description
def test_find_similar(self):
"""Test finding similar commands."""
with tempfile.TemporaryDirectory() as tmpdir:
storage_path = os.path.join(tmpdir, "history.yaml")
learner = HistoryLearner()
learner.storage = HistoryStorage(storage_path)
learner.learn(
description="Find Python files",
commands=["find . -name *.py"],
shell_type="bash",
)
similar = learner.find_similar("python", limit=5)
assert len(similar) == 1
def test_suggest(self):
"""Test getting suggestions."""
with tempfile.TemporaryDirectory() as tmpdir:
storage_path = os.path.join(tmpdir, "history.yaml")
learner = HistoryLearner()
learner.storage = HistoryStorage(storage_path)
learner.learn(
description="Find Python files",
commands=["find . -name *.py"],
shell_type="bash",
)
suggestions = learner.suggest("python files", limit=3)
assert len(suggestions) >= 1
def test_get_frequent_patterns(self):
"""Test analyzing frequent patterns."""
with tempfile.TemporaryDirectory() as tmpdir:
storage_path = os.path.join(tmpdir, "history.yaml")
learner = HistoryLearner()
learner.storage = HistoryStorage(storage_path)
learner.learn(
description="Find files",
commands=["find . -type f"],
shell_type="bash",
)
patterns = learner.get_frequent_patterns()
assert "common_commands" in patterns
assert "shell_types" in patterns