From 0d66d03e1901ef6a19c663510a3317e3188407ba Mon Sep 17 00:00:00 2001 From: yusyus Date: Thu, 1 Jan 2026 21:15:09 +0300 Subject: [PATCH] fix: Fix GitHub Actions CI failures (agent count + anthropic dependency) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed two issues causing CI test failures: 1. Agent count mismatch: Updated tests to expect 11 agents instead of 10 - Added 'neovate' agent to installation mapping - Updated 4 test assertions in test_install_agent.py 2. Missing anthropic package: Added to requirements.txt for E2E tests - Issue #219 E2E tests require anthropic package - Added anthropic==0.40.0 to requirements.txt - Prevents ModuleNotFoundError in CI environment All 40 Issue #219 tests passing locally (31 unit + 9 E2E) All 4 install_agent tests passing locally 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- requirements.txt | 1 + tests/test_install_agent.py | 13 +++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/requirements.txt b/requirements.txt index 36f5461..5b8d8c9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ annotated-types==0.7.0 +anthropic==0.40.0 anyio==4.11.0 attrs==25.4.0 beautifulsoup4==4.14.2 diff --git a/tests/test_install_agent.py b/tests/test_install_agent.py index 195d727..3bdb2ea 100644 --- a/tests/test_install_agent.py +++ b/tests/test_install_agent.py @@ -66,14 +66,15 @@ class TestAgentPathMapping: get_agent_path('invalid_agent') def test_get_available_agents(self): - """Test that all 10 agents are listed.""" + """Test that all 11 agents are listed.""" agents = get_available_agents() - assert len(agents) == 10 + assert len(agents) == 11 assert 'claude' in agents assert 'cursor' in agents assert 'vscode' in agents assert 'amp' in agents assert 'goose' in agents + assert 'neovate' in agents assert sorted(agents) == agents # Should be sorted def test_agent_path_case_insensitive(self): @@ -321,7 +322,7 @@ class TestInstallToAllAgents: shutil.rmtree(self.tmpdir, ignore_errors=True) def test_install_to_all_success(self): - """Test that install_to_all_agents attempts all 10 agents.""" + """Test that install_to_all_agents attempts all 11 agents.""" with tempfile.TemporaryDirectory() as agent_tmpdir: def mock_get_agent_path(agent_name, project_root=None): return Path(agent_tmpdir) / f".{agent_name}" / "skills" @@ -329,7 +330,7 @@ class TestInstallToAllAgents: with patch('skill_seekers.cli.install_agent.get_agent_path', side_effect=mock_get_agent_path): results = install_to_all_agents(self.skill_dir, force=True) - assert len(results) == 10 + assert len(results) == 11 assert 'claude' in results assert 'cursor' in results @@ -339,7 +340,7 @@ class TestInstallToAllAgents: results = install_to_all_agents(self.skill_dir, dry_run=True) # All should succeed in dry-run mode - assert len(results) == 10 + assert len(results) == 11 for agent_name, (success, message) in results.items(): assert success is True assert "DRY RUN" in message @@ -373,7 +374,7 @@ class TestInstallToAllAgents: results = install_to_all_agents(self.skill_dir, dry_run=True) assert isinstance(results, dict) - assert len(results) == 10 + assert len(results) == 11 for agent_name, (success, message) in results.items(): assert isinstance(success, bool)