#!/usr/bin/env python3 """ Exécution des tests du script. """ from random import randint, seed, shuffle import unittest import main class TestMain(unittest.TestCase): """ Cette classe permet d'executer l'ensemble des scripts """ def test_aide(self): """ On essaie d'afficher l'aide, et on vérifie si ça affiche la bonne chose. """ res = main.commande("aide") lines = res.split("\n") self.assertEqual(len(lines), 6) self.assertTrue(lines[0].startswith("aide")) self.assertTrue(lines[1].startswith("seminaire")) self.assertTrue(lines[2].startswith("blague")) self.assertTrue(lines[3].startswith("calcul")) self.assertTrue(lines[4].startswith("tri")) self.assertTrue(lines[5].startswith("stop")) def test_seminaire(self): """ Test de l'affichage du "séminaire". """ res = main.commande("seminaire") self.assertEqual(len(res), 114) def test_blague(self): """ On teste les blagues, et on vérifie si elles fonctionnent bien. """ seed(1) res = main.commande("blague") self.assertEqual(res, "Je vais vous raconter une blague sur UDP, " "mais vous ne l'aurez peut-être pas.") seed(5) res = main.commande("blague") self.assertEqual(res, "Connaissez-vous la différence entre la " "théorie et la pratique ? " "Il n'y en a pas, en théorie.") def test_calcul(self): """ On vérifie que certains calculs basiques, puis aléatoires, marchent bien. """ self.assertTrue(main.commande("calcul", 1, 2, 3)) self.assertFalse(main.commande("calcul", 1, 2, 2, '+')) self.assertTrue(main.commande("calcul", 1, 2, 2, '*')) self.assertTrue(main.commande("calcul", 42, 3, 14, 'div')) self.assertTrue(main.commande("calcul", 16777215, 42, 42, 'and')) self.assertTrue(main.commande("calcul", 16777213, 42, 16777215, 'or')) self.assertFalse(main.commande("calcul", 15, 20, 35, 'xor')) self.assertTrue(main.commande("calcul", 15, 20, 27, '^')) self.assertTrue(main.commande("calcul", 100, 76, 24, 'unknown')) left, right = randint(0, 0x7FFFFFFF), randint(0, 0x7FFFFFFF) self.assertTrue(main.commande("calcul", left, right, left - right, "-")) def test_tri(self): """ À partir d'une liste donnée, on trie la liste et on vérifie qu'elle est bien triée. """ my_list = ["23", "16", "234567", "-4"] shuffle(my_list) sorted_list = [-4, 16, 23, 234567] self.assertEqual(main.commande("tri", *my_list), sorted_list) def test_stop(self): """ On vérifie que le programme s'arrête bien. """ self.assertRaises(SystemExit, main.commande, "stop", 0)