cora / tests /verify_fix.py
tokgae's picture
Upload folder using huggingface_hub
38ab39c verified
import os
from unittest.mock import patch
import sys
# Ensure current directory is in sys.path
sys.path.append(os.getcwd())
def test_fallback():
print("Testing HF_TOKEN fallback with Mocks...")
# Mock load_dotenv to do nothing so it doesn't reload the real .env
with patch('dotenv.load_dotenv'), \
patch('os.getenv') as mocked_getenv:
# 1. Test Fallback to HF_TOKEN
def side_effect(key, default=None):
if key == "HF_API_TOKEN": return None
if key == "HF_TOKEN": return "mock_hf_token"
return os.environ.get(key, default)
mocked_getenv.side_effect = side_effect
# We need to reload the modules or just test the logic if they are already loaded
# Since they are imported at the top level in CoraEngine, we might need to re-import
import cora_engine
import cora_curator
import importlib
importlib.reload(cora_engine)
importlib.reload(cora_curator)
engine = cora_engine.CoraEngine()
curator = cora_curator.CoraCurator()
print(f"Engine HF_TOKEN: {engine.HF_TOKEN}")
print(f"Curator HF_TOKEN: {curator.HF_TOKEN}")
assert engine.HF_TOKEN == "mock_hf_token", "Engine failed fallback"
assert curator.HF_TOKEN == "mock_hf_token", "Curator failed fallback"
print("✅ Fallback to HF_TOKEN verified via Mock.")
# 2. Test Error Message
mocked_getenv.side_effect = lambda key, default=None: None
importlib.reload(cora_engine)
engine_no_token = cora_engine.CoraEngine()
try:
engine_no_token.generate_from_text("test")
except ValueError as e:
print(f"✅ Correctly caught missing token error:\n{e}")
if "Space Settings" in str(e):
print("✅ Error message contains guidance for HF Spaces.")
else:
print("❌ Error message missing guidance.")
sys.exit(1)
if __name__ == "__main__":
test_fallback()