import os from django.conf import settings from django.core.management import call_command from django.utils import timezone from shared.tests.testcases import ViewTestCaseMixin from ..models import CategorieSpectacle, Salle, Spectacle, Tirage from .utils import create_user class BdAViewTestCaseMixin(ViewTestCaseMixin): def get_users_base(self): return { "bda_other": create_user(username="bda_other"), "bda_member": create_user(username="bda_member", is_cof=True), "bda_staff": create_user(username="bda_staff", is_cof=True, is_buro=True), } class BdATestHelpers: bda_testdata = False def setUp(self): super().setUp() if self.bda_testdata: self.load_bda_testdata() def require_custommails(self): data_file = os.path.join( settings.BASE_DIR, "gestioncof", "management", "data", "custommail.json" ) call_command("syncmails", data_file, verbosity=0) def load_bda_testdata(self): self.tirage = Tirage.objects.create( title="Test tirage", appear_catalogue=True, ouverture=timezone.now(), fermeture=timezone.now(), ) self.category = CategorieSpectacle.objects.create(name="Category") self.location = Salle.objects.create(name="here") self.show1 = Spectacle.objects.create( title="foo", date=timezone.now(), location=self.location, price=0, slots=42, tirage=self.tirage, listing=False, category=self.category, ) self.show2 = Spectacle.objects.create( title="bar", date=timezone.now(), location=self.location, price=1, slots=142, tirage=self.tirage, listing=False, category=self.category, ) self.show3 = Spectacle.objects.create( title="baz", date=timezone.now(), location=self.location, price=2, slots=242, tirage=self.tirage, listing=False, category=self.category, )