"""Test encoding_order_delay logic.""" from unittest.mock import MagicMock, patch from src.logic import encoding_order_delay @patch("src.logic.encoding_order_delay.connection") def test_get_records_returns_none_when_no_single_row(mock_conn): """Simulate `fetchone` returning `None`.""" mock_results = MagicMock() mock_results.fetchone.return_value = None mock_conn.query.return_value = mock_results result = encoding_order_delay.get_records("type", "2024-01-01", "2024-01-31") assert result is None @patch("src.logic.encoding_order_delay.connection") def test_get_records_returns_none_when_no_sp_eocheck(mock_conn): """Simulate `fetchone` returning a dict without `SP_EOCHECK`.""" mock_results = MagicMock() mock_results.fetchone.return_value = {} mock_conn.query.return_value = mock_results result = encoding_order_delay.get_records("type", "2024-01-01", "2024-01-31") assert result is None @patch("src.logic.encoding_order_delay.connection") def test_run_returns_false_and_message(mock_conn): """Mock records with `rowcount` and iterator support for message formatting.""" mock_records = MagicMock() mock_records.rowcount = 1 mock_records.__iter__.return_value = iter([{"RELEASE_ID": "R1", "UPC": "U1", "REASON": "Test", "DMS_LIST": "D1"}]) mock_conn.query.return_value = mock_records with patch("src.logic.encoding_order_delay.get_records", return_value=mock_records): result, message = encoding_order_delay.run("type", "2024-01-01", "2024-01-31") assert result is False assert "RELEASE_ID: R1" in message @patch("src.logic.encoding_order_delay.connection") def test_run_returns_true_when_no_records(mock_conn): """Return success when `get_records` returns no rows.""" with patch("src.logic.encoding_order_delay.get_records", return_value=None): result, message = encoding_order_delay.run("type", "2024-01-01", "2024-01-31") assert result is True assert message is None