from django.core.exceptions import ImproperlyConfigured from django.test import TestCase from games.models import Game from submissions.models import Submission from .models import Event from .scoping import current_event class EventScopedManagerTests(TestCase): def setUp(self): self.event_a = Event.objects.create(name="Event A", path="event-a") self.event_b = Event.objects.create(name="Event B", path="event-b") self.game = Game.objects.create(name="Test Game", path="test-game") self.submission_a = Submission.objects.create( event=self.event_a, game=self.game ) self.submission_b = Submission.objects.create( event=self.event_b, game=self.game ) def test_for_event_raises_outside_event_context(self): with self.assertRaises(ImproperlyConfigured): list(Submission.for_event.all()) def test_for_event_filters_to_current_event(self): token = current_event.set(self.event_a) try: results = list(Submission.for_event.all()) finally: current_event.reset(token) self.assertEqual(results, [self.submission_a])