aux_backup / test_log_refresh.py
harvesthealth's picture
Upload folder using huggingface_hub
e9ed805 verified
import asyncio
import os
import shutil
from unittest.mock import MagicMock
import sys
# Mock gradio
sys.modules['gradio'] = MagicMock()
import gradio as gr
# Mock other modules not needed for this test
sys.modules['git'] = MagicMock()
import app
async def test_log_refresh():
# Setup a temporary log directory
test_log_dir = "/tmp/test_ideation_logs"
if os.path.exists(test_log_dir):
shutil.rmtree(test_log_dir)
os.makedirs(test_log_dir)
app.LOG_DIR = test_log_dir
# Create some dummy log folders
os.makedirs(os.path.join(test_log_dir, "log_1"))
os.makedirs(os.path.join(test_log_dir, "log_2"))
# Run refresh_logs_ui
update1, update2 = await app.refresh_logs_ui()
# Check choices (Gradio update object stores choices in a dict or as an attribute)
# In recent Gradio versions, it might be a dict or a dataclass-like object
print(f"Update 1: {update1}")
# Since we mocked gr.update, it returns a MagicMock
# We should actually check what get_ideation_logs returns
logs = app.get_ideation_logs()
print(f"Logs found: {logs}")
assert "log_1" in logs
assert "log_2" in logs
assert len(logs) == 2
# Add a third log and refresh again
os.makedirs(os.path.join(test_log_dir, "log_3"))
logs = app.get_ideation_logs()
print(f"Logs found after update: {logs}")
assert "log_3" in logs
assert len(logs) == 3
print("\nLog refresh test PASSED!")
if __name__ == "__main__":
asyncio.run(test_log_refresh())