diff --git a/bda/tests/test_views.py b/bda/tests/test_views.py index 3dc1b4d1..d13fcf6c 100644 --- a/bda/tests/test_views.py +++ b/bda/tests/test_views.py @@ -1,12 +1,17 @@ import json from datetime import timedelta +from unittest import mock -from django.test import TestCase +from django.contrib.auth import get_user_model +from django.test import Client, TestCase +from django.urls import reverse from django.utils import formats, timezone -from ..models import Participant +from ..models import Participant, Tirage from .testcases import BdATestHelpers, BdAViewTestCaseMixin +User = get_user_model() + class InscriptionViewTestCase(BdATestHelpers, BdAViewTestCaseMixin, TestCase): url_name = "bda-tirage-inscription" @@ -320,6 +325,41 @@ class CatalogueViewTestCase(BdATestHelpers, BdAViewTestCaseMixin, TestCase): ) +# ----- BdA Revente --------------------------------------- # + + +def make_participant(name: str, tirage: Tirage) -> User: + user = User.objects.create_user(username=name, password=name) + user.profile.is_cof = True + user.profile.save() + Participant.objects.create(user=user, tirage=tirage) + return user + + +class TestReventeManageTest(TestCase): + def setUp(self): + self.tirage = Tirage.objects.create( + title="tirage1", + ouverture=timezone.now(), + fermeture=timezone.now() + timedelta(days=90), + ) + self.user = make_participant("toto", self.tirage) + self.url = reverse("bda-revente-manage", args=[self.tirage.id]) + + # Signals handlers on login/logout send messages. + # Due to the way the Django' test Client performs login, this raise an + # error. As workaround, we mock the Django' messages module. + patcher_messages = mock.patch("gestioncof.signals.messages") + patcher_messages.start() + self.addCleanup(patcher_messages.stop) + + def test_can_get(self): + client = Client() + client.force_login(self.user) + r = client.get(self.url) + self.assertEqual(r.status_code, 200) + + class TestBdaRevente: pass # TODO