From 0801432a2c49934b6617961323f86b0072ecfa85 Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Fri, 30 Jan 2026 15:57:23 +0000 Subject: [PATCH] fix: resolve CI test failures with proper mock patching --- tests/test_api.py | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/tests/test_api.py b/tests/test_api.py index 55acb1d..a1823f1 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -1,8 +1,8 @@ -"""Tests for api.py.""" - import pytest +import requests from unittest.mock import patch, MagicMock +from gitignore_generator import api from gitignore_generator.api import ( get_patterns, get_patterns_batch, @@ -45,7 +45,9 @@ class TestGetPatterns: with patch('gitignore_generator.api.CACHE_DIR', tmp_path): with patch('gitignore_generator.api.TEMPLATES_DIR', tmp_path): with patch('gitignore_generator.api.requests.get') as mock_get: - mock_get.side_effect = Exception("Network error") + def raise_error(*args, **kwargs): + raise requests.RequestException("Network error") + mock_get.side_effect = raise_error result = get_patterns('python') assert result == "local template content" @@ -65,7 +67,9 @@ class TestGetPatterns: with patch('gitignore_generator.api.CACHE_DIR', tmp_path): with patch('gitignore_generator.api.TEMPLATES_DIR', tmp_path): with patch('gitignore_generator.api.requests.get') as mock_get: - mock_get.side_effect = Exception("Network error") + def raise_error(*args, **kwargs): + raise requests.RequestException("Network error") + mock_get.side_effect = raise_error with pytest.raises(GitignoreIOError): get_patterns('nonexistent_xyz_123') @@ -75,7 +79,7 @@ class TestGetPatternsBatch: def test_get_patterns_batch_multiple_techs(self): """Test fetching patterns for multiple technologies.""" - def mock_get(url): + def mock_get(url, **kwargs): response = MagicMock() if 'node' in url: response.text = "node_modules/" @@ -84,8 +88,8 @@ class TestGetPatternsBatch: response.raise_for_status = MagicMock() return response - with patch('gitignore_generator.api.requests.get', side_effect=mock_get): - result = get_patterns_batch(['node', 'python']) + with patch.object(api.requests, 'get', side_effect=mock_get): + result = get_patterns_batch(['node', 'python'], force_refresh=True) assert 'node' in result assert 'python' in result assert 'node_modules' in result['node'] @@ -93,15 +97,15 @@ class TestGetPatternsBatch: def test_get_patterns_batch_handles_errors(self): """Test batch fetch continues on individual errors.""" - def mock_get(url): + def mock_get(url, **kwargs): response = MagicMock() if 'unknown' in url: - raise Exception("Network error") + raise requests.RequestException("Network error") response.text = "content" response.raise_for_status = MagicMock() return response - with patch('gitignore_generator.api.requests.get', side_effect=mock_get): + with patch.object(api.requests, 'get', side_effect=mock_get): result = get_patterns_batch(['python', 'unknown_xyz_123']) assert 'python' in result assert 'unknown_xyz_123' in result @@ -114,7 +118,7 @@ class TestGetList: def test_get_list_from_api(self): """Test fetching list from API.""" mock_response = MagicMock() - mock_response.text = "python,node\ndjango,flask\n" + mock_response.text = "python\nnode\ndjango\nflask\n" mock_response.raise_for_status = MagicMock() with patch('gitignore_generator.api.requests.get') as mock_get: