11"""Test cases for RepositoryQuery."""
22
3- from unittest .mock import Mock , patch
3+ from unittest .mock import MagicMock , Mock , patch
44
55import pytest
66
@@ -23,24 +23,46 @@ def mock_repository(self):
2323
2424 def test_resolve_repository_existing (self , mock_repository , mock_info ):
2525 """Test resolving an existing repository."""
26- with patch ( "apps.github.models.repository.Repository.objects.get" ) as mock_get :
27- mock_get .return_value = mock_repository
26+ mock_queryset = MagicMock ()
27+ mock_queryset . get .return_value = mock_repository
2828
29+ with patch (
30+ "apps.github.models.repository.Repository.objects.select_related" ,
31+ return_value = mock_queryset ,
32+ ) as mock_select_related :
2933 result = RepositoryQuery .resolve_repository (
30- None , mock_info , repository_key = "test-repo"
34+ None ,
35+ mock_info ,
36+ organization_key = "test-org" ,
37+ repository_key = "test-repo" ,
3138 )
3239
3340 assert result == mock_repository
34- mock_get .assert_called_once_with (key = "test-repo" )
41+ mock_select_related .assert_called_once_with ("organization" )
42+ mock_queryset .get .assert_called_once_with (
43+ organization__login__iexact = "test-org" ,
44+ key__iexact = "test-repo" ,
45+ )
3546
3647 def test_resolve_repository_not_found (self , mock_info ):
3748 """Test resolving a non-existent repository."""
38- with patch ( "apps.github.models.repository.Repository.objects.get" ) as mock_get :
39- mock_get .side_effect = Repository .DoesNotExist
49+ mock_queryset = MagicMock ()
50+ mock_queryset . get .side_effect = Repository .DoesNotExist
4051
52+ with patch (
53+ "apps.github.models.repository.Repository.objects.select_related" ,
54+ return_value = mock_queryset ,
55+ ) as mock_select_related :
4156 result = RepositoryQuery .resolve_repository (
42- None , mock_info , repository_key = "non-existent-repo"
57+ None ,
58+ mock_info ,
59+ organization_key = "non-existent-org" ,
60+ repository_key = "non-existent-repo" ,
4361 )
4462
4563 assert result is None
46- mock_get .assert_called_once_with (key = "non-existent-repo" )
64+ mock_select_related .assert_called_once_with ("organization" )
65+ mock_queryset .get .assert_called_once_with (
66+ organization__login__iexact = "non-existent-org" ,
67+ key__iexact = "non-existent-repo" ,
68+ )
0 commit comments