python
1 week, 6 days ago
import pytest
from datetime import datetime, timedelta
from unittest.mock import patch, MagicMock
from sqlalchemy.sql import text
from ciss.keyconnect_api.api import api
from ciss.keyconnect_api.models import CryptoKey, KeyType, ResidingTechnology
from job import run
def test_run_deletes_expired_keys():
"""Test that expired CryptoKeys are deleted properly."""
mock_session = MagicMock()
threshold_date = datetime.utcnow() - timedelta(days=2191)
# Mock expired keys
mock_expired_keys = [MagicMock(id=1), MagicMock(id=2)]
with patch("ciss.keyconnect_api.api.db", return_value=mock_session):
with patch("sqlalchemy.sql.functions.dateadd") as mock_dateadd:
with patch("sqlalchemy.sql.delete") as mock_delete:
mock_dateadd.return_value = text("dateadd('DAY', 365, CryptoKey.creation_date)")
mock_session.execute.return_value.rowcount = len(mock_expired_keys)
run()
mock_session.execute.assert_called_once()
mock_session.commit.assert_called_once()
mock_delete.assert_called_once()
print("Test Passed: Expired keys deleted correctly.")
def test_run_no_expired_keys():
"""Test that no keys are deleted when no expired keys exist."""
mock_session = MagicMock()
with patch("ciss.keyconnect_api.api.db", return_value=mock_session):
with patch("sqlalchemy.sql.delete") as mock_delete:
mock_session.execute.return_value.rowcount = 0
run()
mock_session.execute.assert_called_once()
mock_session.commit.assert_called_once()
mock_delete.assert_called_once()
print("Test Passed: No expired keys found.")
0 Comments
Please Login to Comment Here