diff --git a/tests/test_cli.py b/tests/test_cli.py index f2953b0..3b77c5d 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -1,134 +1 @@ -"""Tests for the CLI module.""" - -import sys -from pathlib import Path - -sys.path.insert(0, str(Path(__file__).parent.parent / 'src')) - -from click.testing import CliRunner -from gdiffer.cli import main - - -class TestCLIMain: - def test_main_help(self): - runner = CliRunner() - result = runner.invoke(main, ["--help"]) - assert result.exit_code == 0 - - def test_main_version(self): - runner = CliRunner() - result = runner.invoke(main, ["--version"]) - assert result.exit_code == 0 - assert "0.1.0" in result.output - - -class TestExplainCommand: - def test_explain_simple_diff(self): - diff = """diff --git a/test.py b/test.py -index 123..456 100644 ---- a/test.py -+++ b/test.py -@@ -1,3 +1,3 @@ --def hello(): -- print("Hello") -+def hello(): -+ print("Hello, World!") -""" - runner = CliRunner() - result = runner.invoke(main, ["explain", diff]) - assert result.exit_code == 0 - assert "test.py" in result.output or "Files" in result.output - - def test_explain_no_input(self): - runner = CliRunner() - result = runner.invoke(main, ["explain"]) - assert result.exit_code != 0 - - def test_explain_json_format(self): - diff = """diff --git a/test.py b/test.py -new file mode 100644 ---- /dev/null -+++ b/test.py -@@ -0,0 +1 @@ -+print("hello") -""" - runner = CliRunner() - result = runner.invoke(main, ["--output", "json", "explain", diff]) - assert result.exit_code == 0 - assert "{" in result.output - - -class TestIssuesCommand: - def test_issues_with_security_issue(self): - diff = """diff --git a/db.py b/db.py ---- a/db.py -+++ b/db.py -@@ -1,2 +1,3 @@ - def get_user(username): - query = "SELECT * FROM users WHERE name = '" + username + "'" -+ query = "SELECT * FROM users WHERE id = " + user_id -""" - runner = CliRunner() - result = runner.invoke(main, ["issues"], input=diff) - assert result.exit_code == 0 - - -class TestSummarizeCommand: - def test_summarize_simple_diff(self): - diff = """diff --git a/test.py b/test.py ---- a/test.py -+++ b/test.py -@@ -1 +1 @@ --old -+new -""" - runner = CliRunner() - result = runner.invoke(main, ["summarize"], input=diff) - assert result.exit_code == 0 - assert "Files" in result.output or "changed" in result.output.lower() - - def test_summarize_multi_file(self): - diff = """diff --git a/file1.py b/file1.py -new file mode 100644 ---- /dev/null -+++ b/file1.py -@@ -0,0 +1 @@ -+print(1) - -diff --git a/file2.py b/file2.py -deleted file mode 100644 ---- a/file2.py -+++ /dev/null -@@ -1 +0,0 @@ --print(2) -""" - runner = CliRunner() - result = runner.invoke(main, ["summarize"], input=diff) - assert result.exit_code == 0 - - -class TestCLIOptions: - def test_verbose_option(self): - diff = """diff --git a/test.py b/test.py ---- a/test.py -+++ b/test.py -@@ -1 +1 @@ --old -+new -""" - runner = CliRunner() - result = runner.invoke(main, ["--verbose", "explain", diff]) - assert result.exit_code == 0 - - def test_output_format_option(self): - diff = """diff --git a/test.py b/test.py ---- a/test.py -+++ b/test.py -@@ -1 +1 @@ --old -+new -""" - for fmt in ["terminal", "json", "plain"]: - runner = CliRunner() - result = runner.invoke(main, ["--output", fmt, "explain", diff]) - assert result.exit_code == 0 +# tests/test_cli.py