Ajoute l'assistant IA "Ruby" (Claude + Scenario) et corrige plusieurs bugs de la scène
Intègre un chat IA capable de manipuler la scène via les mêmes fonctions que l'éditeur manuel (objets, variables, déclencheurs, images générées), avec conversations multiples par écran façon Claude. Corrige au passage le rafraîchissement pjax hors-ordre, l'onglet IA/déclencheurs vide après sélection d'un objet, la comparaison de booléens dans les conditions, et le blocage du glisser-déposer hors du cadre caméra après un redimensionnement de fond par l'IA. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
ab6635eee0
commit
b07b231a61
@@ -24,6 +24,10 @@ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
_TEST_AUTH_DIR = tempfile.mkdtemp(prefix="forge_test_auth_")
|
||||
os.environ["FORGE_USERS_DB_PATH"] = os.path.join(_TEST_AUTH_DIR, "users.db")
|
||||
os.environ["FORGE_SECRET_KEY_PATH"] = os.path.join(_TEST_AUTH_DIR, "secret_key")
|
||||
# "Mes assets" (voir auth/user_assets_dir.py, db/constants.py::USER_ASSETS_DIR) :
|
||||
# même raison que FORGE_USERS_DB_PATH ci-dessus — jamais écrire dans le
|
||||
# vrai user_assets/ du poste pendant les tests.
|
||||
os.environ["FORGE_USER_ASSETS_DIR"] = os.path.join(_TEST_AUTH_DIR, "user_assets")
|
||||
|
||||
import pytest
|
||||
|
||||
@@ -37,6 +41,17 @@ from core import recovery_codes_flash # noqa: F401 - enregistre pop_recovery_co
|
||||
import auth
|
||||
import db
|
||||
|
||||
# Onglet "IA" (voir ai/) : jamais un vrai appel réseau depuis les tests,
|
||||
# même si un .env réel existe sur ce poste avec de vraies clés —
|
||||
# load_dotenv() (core.flask_app, importé ci-dessus) les aurait déjà
|
||||
# chargées dans os.environ à ce stade ; on les retire explicitement pour
|
||||
# que CHAQUE test parte de "IA non configurée" par défaut. Un test qui
|
||||
# veut simuler une IA configurée monkeypatche directement
|
||||
# ai.client.get_client/ai.scenario_client.generate_image_url — jamais via
|
||||
# une vraie clé, quel que soit le contenu du .env local.
|
||||
for _ai_env_key in ("ANTHROPIC_API_KEY", "SCENARIO_API_KEY", "SCENARIO_API_SECRET", "SCENARIO_MODEL_ID"):
|
||||
os.environ.pop(_ai_env_key, None)
|
||||
|
||||
# Un seul compte admin pour toute la session de tests : les ~80 routes
|
||||
# existantes s'attendent (comportement d'avant l'authentification) à un
|
||||
# accès sans restriction — "admin" est le seul rôle illimité (voir
|
||||
|
||||
Reference in New Issue
Block a user