| import os
|
| from unittest.mock import patch
|
| import sys
|
|
|
|
|
| sys.path.append(os.getcwd())
|
|
|
| def test_fallback():
|
| print("Testing HF_TOKEN fallback with Mocks...")
|
|
|
|
|
| with patch('dotenv.load_dotenv'), \
|
| patch('os.getenv') as mocked_getenv:
|
|
|
|
|
| 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
|
|
|
|
|
|
|
| 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.")
|
|
|
|
|
| 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()
|
|
|