feat: initial commit - Carinha Control Panel v1.0 com UI glassmorphism, watch-bar, emojis, braco robotico e conversa IA
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import unittest,tempfile
|
||||
from pathlib import Path
|
||||
from treinamento import Treinamento,validar_receita
|
||||
|
||||
class TestTreinamento(unittest.TestCase):
|
||||
def test_automatico_so_gera_apos_hora_com_atividade_nova(self):
|
||||
with tempfile.TemporaryDirectory() as d:
|
||||
t=Treinamento(Path(d)/'treino.db',iniciar=False);inicio=t.last
|
||||
with t.db() as db:db.execute("INSERT INTO config VALUES ('automatico','true')")
|
||||
calls=[];t.gerar=lambda:calls.append(True)
|
||||
self.assertFalse(t.verificar_hora(inicio+3601))
|
||||
t.registrar('user','Uma nova conversa')
|
||||
self.assertFalse(t.verificar_hora(inicio+3599))
|
||||
self.assertTrue(t.verificar_hora(inicio+3601))
|
||||
self.assertFalse(t.verificar_hora(inicio+7202))
|
||||
self.assertEqual(len(calls),1)
|
||||
def test_receita_rejeita_codigo_e_movimentos_fora_limite(self):
|
||||
step=dict(olhos='feliz',boca='sorriso',cor='#5cd6ff',dx=0,dy=0,escala=1,duracao=.5)
|
||||
recipe=dict(nome='Alegria',motivo='Conquista',simbolo='estrela',legenda='Boa!',passos=[step])
|
||||
self.assertEqual(validar_receita(recipe)['nome'],'Alegria')
|
||||
with self.assertRaises(ValueError):validar_receita(dict(recipe,codigo='alert(1)'))
|
||||
step['dx']=1000
|
||||
with self.assertRaises(ValueError):validar_receita(recipe)
|
||||
def test_rotina_diario_persistem(self):
|
||||
with tempfile.TemporaryDirectory() as d:
|
||||
t=Treinamento(Path(d)/'treino.db',iniciar=False)
|
||||
t.rotina('Gosto de música');t.registrar('user','Ouvi uma música')
|
||||
saved=Treinamento(Path(d)/'treino.db',iniciar=False).status()
|
||||
self.assertEqual(saved['rotina'][0]['texto'],'Gosto de música')
|
||||
self.assertEqual(saved['diario'][0]['texto'],'Ouvi uma música')
|
||||
Reference in New Issue
Block a user