je faisais ce qui suit pour une définition de formulaire Django (gênant, oui):Python: Les tests unitaires pour la date change
class DealAdvancedSearchForm(forms.Form):
weekday_choices = [
['monday', 'Monday'],
['tuesday', 'Tuesday'],
['wednesday', 'Wednesday'],
['thursday', 'Thursday'],
['friday', 'Friday'],
['saturday', 'Saturday'],
['sunday', 'Sunday'],
]
weekday_index = date.today().weekday()
weekday_choices[weekday_index][1] += ' (Today)'
weekday_choices[weekday_index+1][1] += ' (Tomorrow)'
weekday = forms.ChoiceField(label='Day of the week', choices=weekday_choices, required=False)
Comme vous l'avez probablement deviné, cela fonctionne très bien tant que date.today()
ne change pas . Tous mes tests ont réussi. Cependant, une fois la date changée, le choix de la date initiale est marqué de manière incorrecte comme marqué aujourd'hui.
J'ai depuis compris à quel point c'était stupide et j'ai déplacé le code dans la méthode __init__
.
Maintenant, je veux écrire un test pour cela. Est-ce que quelqu'un sait comment je testerais que le jour de la semaine correct est marqué comme (Today)
quand la date change?
+1 pour la suggestion de module. Cependant, ce que je veux, c'est tester ce qui se passera si la date change. –
@NimmyLebby, j'ai ajouté quelques infos sur MiniMock. Un outil très utile pour aider à tester. – kevpie
Je ne peux pas encore +1 mais je vais y plonger demain soir. Cela ressemble à des suggestions solides. Merci! –