import pytest
from calculatrice import Calculatrice
from datetime import datetime
def pytest_generate_tests(metafunc):
funcarglist = metafunc.cls.params[metafunc.function.__name__]
argnames = sorted(funcarglist[0])
metafunc.parametrize(argnames, [[funcargs[name] for name in argnames]
for funcargs in funcarglist])
class TestClass(object):
params = {
'test_sommet': [dict(liste=[4]), dict(liste=[2,7,12]), dict(liste=[2,4,7,-1]),],
'test_somme': [dict(liste=[2,-3], resAttendu=5), dict(liste=[2,3,6], resAttendu=9)],
}
@pytest.mark.skipif(datetime.now().second < 30, reason="à cette heure-ci, on ignore ce test")
def test_sommet(self, liste):
calc = Calculatrice()
for i in liste:
calc.empiler(i)
resAttendu = liste[-1]
resEffectif = calc.sommet()
assert resAttendu == resEffectif, "le dernier nombre empilé est au sommet"
def test_somme(self, liste,resAttendu):
calc = Calculatrice()
for i in liste:
calc.empiler(i)
if calc.sommet() < 0:
pytest.skip("Pas de nombre négatif en 2è paramètre de l'addition")
calc.ajouter()
resEffectif = calc.sommet()
assert resAttendu == resEffectif, "la somme des 2 derniers nombres est au sommet"