Skip to content

Commit 4afdeb9

Browse files
committed
Test updates for trace logging.
1 parent 65fe266 commit 4afdeb9

File tree

1 file changed

+46
-25
lines changed

1 file changed

+46
-25
lines changed

tests/utils/test_trace_logging.py

Lines changed: 46 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,39 @@
1-
import logging
1+
#
2+
# Copyright 2025 ABSA Group Limited
3+
#
4+
# Licensed under the Apache License, Version 2.0 (the "License");
5+
# you may not use this file except in compliance with the License.
6+
# You may obtain a copy of the License at
7+
#
8+
# http://www.apache.org/licenses/LICENSE-2.0
9+
#
10+
# Unless required by applicable law or agreed to in writing, software
11+
# distributed under the License is distributed on an "AS IS" BASIS,
12+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
# See the License for the specific language governing permissions and
14+
# limitations under the License.
15+
#
16+
217
from unittest.mock import MagicMock
318

419
from src.utils.logging_levels import TRACE_LEVEL
5-
import src.writers.writer_eventbridge as we
6-
import src.writers.writer_kafka as wk
7-
import src.writers.writer_postgres as wp
20+
import src.writers.writer_eventbridge as writer_eventbridge
21+
import src.writers.writer_kafka as writer_kafka
22+
import src.writers.writer_postgres as writer_postgres
823

924

1025
def test_trace_eventbridge(caplog):
11-
logger = logging.getLogger("trace.eventbridge")
12-
logger.setLevel(TRACE_LEVEL)
13-
we.STATE["logger"] = logger
14-
we.STATE["event_bus_arn"] = "arn:aws:events:region:acct:event-bus/test"
26+
# Set trace level on the module's logger
27+
writer_eventbridge.logger.setLevel(TRACE_LEVEL)
28+
caplog.set_level(TRACE_LEVEL)
29+
30+
writer = writer_eventbridge.WriterEventBridge({"event_bus_arn": "arn:aws:events:region:acct:event-bus/test"})
1531
mock_client = MagicMock()
1632
mock_client.put_events.return_value = {"FailedEntryCount": 0, "Entries": []}
17-
we.STATE["client"] = mock_client
18-
caplog.set_level(TRACE_LEVEL)
19-
ok, err = we.write("topic.eb", {"k": 1})
33+
writer._client = mock_client
34+
35+
ok, err = writer.write("topic.eb", {"k": 1})
36+
2037
assert ok and err is None
2138
assert any("EventBridge payload" in rec.message for rec in caplog.records)
2239

@@ -28,21 +45,23 @@ def produce(self, *a, **kw):
2845
if cb:
2946
cb(None, object())
3047

31-
def flush(self, *a, **kw):
48+
def flush(self, timeout=None):
3249
return 0
3350

34-
logger = logging.getLogger("trace.kafka")
35-
logger.setLevel(TRACE_LEVEL)
36-
wk.STATE["logger"] = logger
37-
wk.STATE["producer"] = FakeProducer()
51+
# Set trace level on the module's logger
52+
writer_kafka.logger.setLevel(TRACE_LEVEL)
3853
caplog.set_level(TRACE_LEVEL)
39-
ok, err = wk.write("topic.kf", {"k": 2})
54+
55+
writer = writer_kafka.WriterKafka({"kafka_bootstrap_server": "localhost:9092"})
56+
writer._producer = FakeProducer()
57+
58+
ok, err = writer.write("topic.kf", {"k": 2})
59+
4060
assert ok and err is None
4161
assert any("Kafka payload" in rec.message for rec in caplog.records)
4262

4363

4464
def test_trace_postgres(caplog, monkeypatch):
45-
# Prepare dummy psycopg2 connection machinery
4665
store = []
4766

4867
class DummyCursor:
@@ -72,15 +91,17 @@ class DummyPsycopg2:
7291
def connect(self, **kwargs):
7392
return DummyConnection()
7493

75-
monkeypatch.setattr(wp, "psycopg2", DummyPsycopg2())
76-
77-
logger = logging.getLogger("trace.postgres")
78-
logger.setLevel(TRACE_LEVEL)
79-
wp.logger = logger
80-
wp.POSTGRES = {"database": "db", "host": "h", "user": "u", "password": "p", "port": 5432}
94+
monkeypatch.setattr(writer_postgres, "psycopg2", DummyPsycopg2())
8195

96+
# Set trace level on the module's logger
97+
writer_postgres.logger.setLevel(TRACE_LEVEL)
8298
caplog.set_level(TRACE_LEVEL)
99+
100+
writer = writer_postgres.WriterPostgres({})
101+
writer._db_config = {"database": "db", "host": "h", "user": "u", "password": "p", "port": 5432}
102+
83103
message = {"event_id": "e", "tenant_id": "t", "source_app": "a", "environment": "dev", "timestamp": 1}
84-
ok, err = wp.write("public.cps.za.test", message)
104+
ok, err = writer.write("public.cps.za.test", message)
105+
85106
assert ok and err is None
86107
assert any("Postgres payload" in rec.message for rec in caplog.records)

0 commit comments

Comments
 (0)