Tests
# Cas minimal
result = construire_system_prompt({'produit': 'Python'})
assert 'Python' in result, 'Le produit doit apparaitre dans le prompt'
assert 'intermediaire' in result, 'Le niveau par défaut doit etre intermediaire'
assert 'francais' in result, 'La langue par défaut doit etre francais'
assert 'mots maximum' not in result, 'Sans max_mots, pas de contrainte de longueur'
# Cas complet
result2 = construire_system_prompt({'produit': 'Django', 'niveau': 'debutant', 'langue': 'anglais', 'max_mots': 50})
assert 'Django' in result2, 'Le produit Django doit apparaitre'
assert 'debutant' in result2, 'Le niveau debutant doit apparaitre'
assert 'anglais' in result2, 'La langue anglais doit apparaitre'
assert '50 mots maximum' in result2, 'La contrainte de 50 mots doit apparaitre'
# Avec juste max_mots
result3 = construire_system_prompt({'produit': 'FastAPI', 'max_mots': 200})
assert '200 mots maximum' in result3, 'max_mots doit etre pris en compte'
assert 'intermediaire' in result3, 'Le niveau par défaut doit toujours etre la'
# Vérifier le type
assert isinstance(result, str), 'Doit retourner une chaine de caracteres'