feat: initial commit - Carinha Control Panel v1.0 com UI glassmorphism, watch-bar, emojis, braco robotico e conversa IA

This commit is contained in:
julio
2026-10-05 16:21:57 -03:00
commit 8217292893
114 changed files with 13145 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
import unittest
from gemini import payload_gemini, extrair_resposta
class TestGemini(unittest.TestCase):
def test_catalogo_limita_ids_da_reacao(self):
payload=payload_gemini([],[],'Vamos festejar!',[dict(id=7,receita=dict(nome='Festa',motivo='Conquista'))])
self.assertEqual(payload['generationConfig']['responseSchema']['properties']['reacao']['enum'],['0','7'])
def test_nao_envia_perguntas_sem_resposta_de_chamadas_falhas(self):
payload=payload_gemini([{'role':'user','content':'pergunta que falhou'}],[],'pergunta atual')
self.assertEqual(len(payload['contents']),1)
self.assertEqual(payload['contents'][0]['parts'][0]['text'],'pergunta atual')
def test_contexto_e_memoria_sem_chave_no_payload(self):
payload=payload_gemini([{'role':'user','content':'Está bravo?'},{'role':'assistant','content':'Não!'}],[{'texto':'Meu nome é Jullio'}],'Oi')
self.assertEqual(payload['contents'][-1]['parts'][0]['text'],'Oi')
self.assertEqual(payload['contents'][1]['role'],'model')
self.assertIn('Jullio',str(payload['systemInstruction']))
self.assertNotIn('api_key',str(payload))
def test_conteudo_ignora_thought_e_exige_json(self):
data={'candidates':[{'content':{'parts':[{'text':'segredo','thought':True},{'text':'{"texto":"Oi!","gesto":"feliz"}'}]}}]}
self.assertEqual(extrair_resposta(data),{'texto':'Oi!','gesto':'feliz'})
with self.assertRaises(ValueError):extrair_resposta({'candidates':[]})