11import base64
22import json
3- import logging
43from unittest import mock
54from unittest .mock import patch , Mock , MagicMock
65
@@ -41,42 +40,6 @@ def mock_db_session():
4140 return Mock ()
4241
4342
44- class MockLogger :
45- """Mock logger for testing"""
46-
47- @staticmethod
48- def init_logger ():
49- return MagicMock ()
50-
51- def __init__ (self , name ):
52- self .name = name
53- self ._logger = logging .getLogger (name )
54-
55- def get_logger (self ):
56- mock_logger = MagicMock ()
57- # Add all required logging methods
58- mock_logger .info = MagicMock ()
59- mock_logger .error = MagicMock ()
60- mock_logger .warning = MagicMock ()
61- mock_logger .debug = MagicMock ()
62- mock_logger .addFilter = MagicMock ()
63- return mock_logger
64-
65-
66- @pytest .fixture (autouse = True )
67- def mock_logging ():
68- """Mock both local and GCP logging."""
69- with patch ("main.logging" ) as mock_log , patch ("main.Logger" , MockLogger ):
70- for logger in [mock_log ]:
71- logger .info = MagicMock ()
72- logger .error = MagicMock ()
73- logger .warning = MagicMock ()
74- logger .debug = MagicMock ()
75- logger .addFilter = MagicMock ()
76-
77- yield mock_log
78-
79-
8043@pytest .fixture
8144def feed_payload ():
8245 """Fixture for feed payload."""
@@ -150,7 +113,7 @@ def _create_payload_dict(feed_payload: FeedPayload) -> dict:
150113 "payload_type" : feed_payload .payload_type ,
151114 }
152115
153- def test_get_current_feed_info (self , processor , feed_payload , mock_logging ):
116+ def test_get_current_feed_info (self , processor , feed_payload ):
154117 """Test retrieving current feed information."""
155118 # Mock database query
156119 processor .session .query .return_value .filter .return_value .all .return_value = [
@@ -179,7 +142,7 @@ def test_get_current_feed_info(self, processor, feed_payload, mock_logging):
179142 )
180143 assert len (feeds ) == 0
181144
182- def test_check_feed_url_exists_comprehensive (self , processor , mock_logging ):
145+ def test_check_feed_url_exists_comprehensive (self , processor ):
183146 """Test comprehensive feed URL existence checks."""
184147 test_url = "https://example.com/feed"
185148
@@ -191,7 +154,7 @@ def test_check_feed_url_exists_comprehensive(self, processor, mock_logging):
191154 result = processor ._check_feed_url_exists (test_url )
192155 assert result is True
193156
194- def test_database_error_handling (self , processor , feed_payload , mock_logging ):
157+ def test_database_error_handling (self , processor , feed_payload ):
195158 """Test database error handling in different scenarios."""
196159
197160 # Test case 1: General database error during feed processing
@@ -201,9 +164,7 @@ def test_database_error_handling(self, processor, feed_payload, mock_logging):
201164
202165 processor ._rollback_transaction .assert_called_once ()
203166
204- def test_publish_to_batch_topic_comprehensive (
205- self , processor , feed_payload , mock_logging
206- ):
167+ def test_publish_to_batch_topic_comprehensive (self , processor , feed_payload ):
207168 """Test publishing to batch topic including success, error, and message format validation."""
208169
209170 # Test case 1: Successful publish with message format validation
@@ -227,7 +188,7 @@ def test_publish_to_batch_topic_comprehensive(
227188 assert "feed_stable_id" in json .loads (message_arg ["data" ])
228189 assert "tld-feed1" == json .loads (message_arg ["data" ])["feed_stable_id" ]
229190
230- def test_process_feed_event_validation (self , mock_logging ):
191+ def test_process_feed_event_validation (self ):
231192 """Test feed event processing with various invalid payloads."""
232193
233194 # Test case 1: Empty payload
@@ -255,7 +216,7 @@ def test_process_feed_event_validation(self, mock_logging):
255216 process_feed_event (cloud_event )
256217
257218 def test_process_feed_event_pubsub_error (
258- self , processor , feed_payload , mock_logging , mock_db_session
219+ self , processor , feed_payload , mock_db_session
259220 ):
260221 """Test feed event processing handles missing credentials error."""
261222 # Create cloud event with valid payload
@@ -274,7 +235,7 @@ def test_process_feed_event_pubsub_error(
274235
275236 process_feed_event (cloud_event , db_session = mock_session )
276237
277- def test_process_feed_event_malformed_cloud_event (self , mock_logging ):
238+ def test_process_feed_event_malformed_cloud_event (self ):
278239 """Test feed event processing with malformed cloud event."""
279240 # Test case 1: Missing message data
280241 cloud_event = Mock ()
@@ -287,7 +248,7 @@ def test_process_feed_event_malformed_cloud_event(self, mock_logging):
287248
288249 process_feed_event (cloud_event )
289250
290- def test_process_feed_event_invalid_json (self , mock_logging ):
251+ def test_process_feed_event_invalid_json (self ):
291252 """Test handling of invalid JSON in cloud event"""
292253 # Create invalid base64 encoded JSON
293254 invalid_json = base64 .b64encode (b'{"invalid": "json"' ).decode ()
@@ -296,14 +257,14 @@ def test_process_feed_event_invalid_json(self, mock_logging):
296257 cloud_event .data = {"message" : {"data" : invalid_json }}
297258
298259 # Process the event
299- process_feed_event (cloud_event )
260+ result = process_feed_event (cloud_event )
300261
301262 # Verify error handling
302- mock_logging . error . assert_called ( )
263+ assert result . startswith ( "Error processing feed event" )
303264
304265 @patch ("main.create_new_feed" )
305266 def test_process_new_feed_or_skip (
306- self , create_new_feed_mock , processor , feed_payload , mock_logging
267+ self , create_new_feed_mock , processor , feed_payload
307268 ):
308269 """Test processing new feed or skipping existing feed."""
309270 processor ._check_feed_url_exists = MagicMock ()
@@ -313,9 +274,7 @@ def test_process_new_feed_or_skip(
313274 create_new_feed_mock .assert_called_once ()
314275
315276 @patch ("main.create_new_feed" )
316- def test_process_new_feed_skip (
317- self , create_new_feed_mock , processor , feed_payload , mock_logging
318- ):
277+ def test_process_new_feed_skip (self , create_new_feed_mock , processor , feed_payload ):
319278 """Test processing new feed or skipping existing feed."""
320279 processor ._check_feed_url_exists = MagicMock ()
321280 # Test case 2: Existing feed
@@ -325,7 +284,7 @@ def test_process_new_feed_skip(
325284
326285 @patch ("main.create_new_feed" )
327286 def test_process_existing_feed_refs (
328- self , create_new_feed_mock , processor , feed_payload , mock_logging
287+ self , create_new_feed_mock , processor , feed_payload
329288 ):
330289 """Test processing existing feed references."""
331290 # 1. Existing feed with same url
0 commit comments