From 69c02d6ac5cb0eff81ae6b4f2daa09f7392809a6 Mon Sep 17 00:00:00 2001
From: Joel Grunbaum <joelgrun@gmail.com>
Date: Fri, 20 Feb 2026 03:02:40 +0000
Subject: [PATCH] Check repos for dependencies

---
 tests/test_resolver.py |   75 +++++++++++++++++++++++++++++++++----
 1 files changed, 67 insertions(+), 8 deletions(-)

diff --git a/tests/test_resolver.py b/tests/test_resolver.py
index f2e089b..f676bc5 100644
--- a/tests/test_resolver.py
+++ b/tests/test_resolver.py
@@ -3,7 +3,7 @@
 import pytest
 from unittest.mock import AsyncMock, patch
 
-from archbuild.resolver import DependencyResolver, Dependency, DependencyType, BuildOrder
+from archrepobuild.resolver import DependencyResolver, Dependency, DependencyType, BuildOrder
 
 
 class TestDependency:
@@ -118,14 +118,73 @@
         cycles = resolver.detect_cycles(graph)
         assert len(cycles) > 0
 
-    @patch("archbuild.resolver.subprocess.run")
-    def test_is_in_official_repos(self, mock_run, mock_aur_client):
-        """Test checking official repos."""
+    @patch("archrepobuild.resolver.subprocess.run")
+    def test_is_in_repos(self, mock_run, mock_aur_client):
+        """Test checking repos."""
         mock_run.return_value.returncode = 0
-        mock_run.return_value.stdout = "base\ngit\nvim\n"
+        mock_run.return_value.stdout = "core base\nextra git\ncustom mypkg\n"
 
         resolver = DependencyResolver(mock_aur_client)
-        resolver._refresh_pacman_cache()
+        
+        # Test default (include_all=True)
+        assert resolver.is_in_repos("git")
+        assert resolver.is_in_repos("mypkg")
+        assert resolver.is_in_repos("base")
+        assert not resolver.is_in_repos("yay")
 
-        assert resolver.is_in_official_repos("git")
-        assert not resolver.is_in_official_repos("yay")
+        # Test official_only (include_all=False)
+        assert resolver.is_in_repos("git", include_all=False)
+        assert resolver.is_in_repos("base", include_all=False)
+        assert not resolver.is_in_repos("mypkg", include_all=False)
+
+    @pytest.mark.asyncio
+    async def test_resolve_includes_checkdepends(self, mock_aur_client):
+        """Test that resolve includes checkdepends in the build order or dependency map."""
+        from archrepobuild.aur import Package
+        
+        resolver = DependencyResolver(mock_aur_client)
+        
+        # Mock AUR response
+        pkg = Package(
+            name="test-pkg",
+            version="1.0",
+            description="test",
+            url=None,
+            maintainer=None,
+            votes=0,
+            popularity=0.0,
+            out_of_date=None,
+            first_submitted=None,
+            last_modified=None,
+            depends=[],
+            makedepends=[],
+            checkdepends=["check-dep"],
+        )
+        
+        dep_pkg = Package(
+            name="check-dep",
+            version="1.0",
+            description="test",
+            url=None,
+            maintainer=None,
+            votes=0,
+            popularity=0.0,
+            out_of_date=None,
+            first_submitted=None,
+            last_modified=None,
+            depends=[],
+            makedepends=[],
+            checkdepends=[],
+        )
+        
+        mock_aur_client.get_packages.side_effect = [[pkg], [dep_pkg]]
+        
+        # Assume neither is in repos or installed
+        with patch.object(resolver, "is_in_repos", return_value=False), \
+             patch.object(resolver, "is_installed", return_value=False):
+            
+            build_order = await resolver.resolve(["test-pkg"])
+            
+            assert "check-dep" in build_order.packages
+            assert "check-dep" in [d.name for d in build_order.aur_dependencies["test-pkg"]]
+            assert any(d.dep_type == DependencyType.CHECK for d in build_order.aur_dependencies["test-pkg"])

--
Gitblit v1.10.0