Initial commit: Intelligent Disk Cleaner

This commit is contained in:
2026-02-03 14:36:25 -05:00
commit ec7625d4d9
11 changed files with 1769 additions and 0 deletions

62
test_driver_rate_limit.py Normal file
View File

@@ -0,0 +1,62 @@
import unittest
from unittest.mock import MagicMock, patch, mock_open
import os
import time
import json
import disk_cleaner
import tempfile
import sys
def run_test():
with tempfile.TemporaryDirectory() as temp_dir:
state_file = os.path.join(temp_dir, "cleaner_state.json")
disk_cleaner.STATE_FILE = state_file
print(f"Testing rate limiting. State file: {state_file}")
# Mock send_email internals (smtplib) to verify call count
with patch('smtplib.SMTP') as mock_smtp:
# 1. First Call: Should Send
print("First Trigger (expect send)...")
disk_cleaner.send_email("Subject 1", "Body", "/mnt/data")
if mock_smtp.called:
print("SUCCESS: Email sent.")
else:
print("FAILURE: Email NOT sent.")
mock_smtp.reset_mock()
# Verify state file
if os.path.exists(state_file):
with open(state_file) as f:
state = json.load(f)
print(f"State: {state}")
if '/mnt/data' in state:
print("SUCCESS: State recorded.")
else:
print("FAILURE: State missing key.")
else:
print("FAILURE: State file not created.")
# 2. Second Call (Immediate): Should Suppress
print("Second Trigger (Immediate - expect suppress)...")
disk_cleaner.send_email("Subject 2", "Body", "/mnt/data")
if not mock_smtp.called:
print("SUCCESS: Email suppressed.")
else:
print("FAILURE: Email sent despite cooldown.")
mock_smtp.reset_mock()
# 3. Third Call (Different Mount): Should Send
print("Third Trigger (Different Mount - expect send)...")
disk_cleaner.send_email("Subject 3", "Body", "/mnt/other")
if mock_smtp.called:
print("SUCCESS: Email sent (different key).")
else:
print("FAILURE: Email NOT sent for new key.")
mock_smtp.reset_mock()
if __name__ == "__main__":
run_test()