Research-Stack/4-Infrastructure/NoDupeLabs/tests/database/test_logging_coverage.py

89 lines
2.7 KiB
Python

# SPDX-License-Identifier: Apache-2.0
# Copyright (c) 2025 Allaun
"""Tests for DatabaseLogging to achieve 100% coverage."""
from unittest.mock import MagicMock, patch
import pytest
from nodupe.tools.databases.logging_ import DatabaseLogging
class TestDatabaseLoggingCoverage:
"""Test cases to achieve full coverage of DatabaseLogging."""
def test_log_disabled(self):
"""Test logging does nothing when disabled."""
mock_conn = MagicMock()
logger = DatabaseLogging(mock_conn)
logger.enabled = False
# Should not raise and should not print
logger.log("test message", "INFO")
def test_log_enabled_no_db(self):
"""Test logging to console when enabled but log_to_db is False."""
mock_conn = MagicMock()
logger = DatabaseLogging(mock_conn)
logger.enabled = True
logger.log_to_db = False
# Should not raise
logger.log("test message", "INFO")
def test_log_to_database_success(self):
"""Test logging to database when enabled."""
mock_conn = MagicMock()
mock_conn.get_connection.return_value = MagicMock()
logger = DatabaseLogging(mock_conn)
logger.enabled = True
logger.log_to_db = True
# Should not raise
logger.log("test message", "INFO")
def test_log_to_database_exception(self):
"""Test logging to database handles exceptions."""
mock_conn = MagicMock()
mock_conn.get_connection.side_effect = Exception("DB Error")
logger = DatabaseLogging(mock_conn)
logger.enabled = True
logger.log_to_db = True
# Should not raise even when DB fails
logger.log("test message", "INFO")
def test_set_enabled_true(self):
"""Test set_enabled with True."""
mock_conn = MagicMock()
logger = DatabaseLogging(mock_conn)
logger.set_enabled(True)
assert logger.enabled is True
def test_set_enabled_false(self):
"""Test set_enabled with False."""
mock_conn = MagicMock()
logger = DatabaseLogging(mock_conn)
logger.set_enabled(False)
assert logger.enabled is False
def test_set_log_to_db_true(self):
"""Test set_log_to_db with True."""
mock_conn = MagicMock()
logger = DatabaseLogging(mock_conn)
logger.set_log_to_db(True)
assert logger.log_to_db is True
def test_set_log_to_db_false(self):
"""Test set_log_to_db with False."""
mock_conn = MagicMock()
logger = DatabaseLogging(mock_conn)
logger.set_log_to_db(False)
assert logger.log_to_db is False