import unittest from cerebro import POR_EVENTO, Cerebro, validar_intencao class Tests(unittest.TestCase): def test_only_allowlisted_expression(self): self.assertEqual(validar_intencao({'gesto':'feliz'}),'feliz') for data in [{'gesto':'motor 2500'},{'gesto':'feliz','pulso':2500},[],{'gesto':'dormir'}]: with self.assertRaises(ValueError):validar_intencao(data) def test_opcoes_por_evento_sem_repetir(self): c = Cerebro.__new__(Cerebro) # sem thread nem arquivo: só a escolha de opções c.history = ['surpreso', 'olhar_esq'] opcoes = c.opcoes('som') self.assertNotIn('surpreso', opcoes) # os dois últimos ficam de fora self.assertNotIn('olhar_esq', opcoes) self.assertNotIn('esconder', opcoes) # barulho não vira "esconder o rosto" self.assertTrue(set(opcoes) <= set(POR_EVENTO['som'])) for evento, lista in POR_EVENTO.items(): for g in lista: self.assertEqual(validar_intencao({'gesto': g}), g) self.assertNotIn('acenar', POR_EVENTO['sozinho']) # sozinho: nada de gesto "para alguém" if __name__=='__main__':unittest.main()