import unittest
import random

import names

from TP2.Objet import Objet

words = open('/etc/dictionaries-common/words').readlines()

from TP2.Personnage import Personnage


class TestPersonnage(unittest.TestCase):
    def test_PV_nuls(self):
        '''
        Teste si aucune action de `Personnage` ne réussit lorsque l'attribut `pv` vaut zéro
        :return: None
        '''
        o = Objet(random.choice(words))
        p1= Personnage(names.get_full_name(), [o])
        p2= Personnage(names.get_full_name(), [o])
        p1.force = p2.force+1
        p1.pv = 0
        self.assertEqual(False, p1.prendre(o, p2), "On ne doit pas pouvoir prendre des objets lorsque `self.pv <= 0`")
        self.assertEqual(False, p1.donner(o, p2), "On ne doit pas pouvoir donner des objets lorsque `self.pv <= 0`")
        self.assertEqual(False, p1.acheter(o, p2), "On ne doit pas pouvoir acheter des objets lorsque `self.pv <= 0`")
        self.assertEqual(False, p1.vendre(o, p2), "On ne doit pas pouvoir vendre des objets lorsque `self.pv <= 0`")


if __name__ == '__main__':
    unittest.main()
