def test_fields_autogeneration(self): contest = Contest() contest.save() self.assertEqual(contest.id, 'c1') round = Round(contest=contest) round.save() self.assertEqual(round.name, 'Round 1') round = Round(contest=contest) round.save() self.assertEqual(round.name, 'Round 2') problem = Problem() problem.save() pi = ProblemInstance(round=round, problem=problem) pi.save() self.assertEqual(pi.contest, contest)
def test_countdown_with_extended_rounds(self): contest = Contest.objects.get() now = time.time() r1_start = datetime.fromtimestamp(now - 5) r1_end = datetime.fromtimestamp(now + 10) r1 = Round(contest=contest, start_date=r1_start, end_date=r1_end) r1.save() user = User.objects.get(username='******') RoundTimeExtension(user=user, round=r1, extra_time=10).save() self.assertTrue(self.client.login(username='******')) response = self.client.get(reverse('get_status', kwargs={'contest_id': contest.id})).json() round_start_date = response['round_start_date'] round_end_date = response['round_end_date'] self.assertEqual(round_start_date, time.mktime(r1_start.timetuple())) self.assertEqual(round_end_date, time.mktime(r1_end.timetuple()) + 600)
def test_countdown_with_extended_rounds(self): contest = Contest.objects.get() now = time.time() r1_start = datetime.fromtimestamp(now - 5) r1_end = datetime.fromtimestamp(now + 10) r1 = Round(contest=contest, start_date=r1_start, end_date=r1_end) r1.save() user = User.objects.get(username='******') RoundTimeExtension(user=user, round=r1, extra_time=10).save() self.assertTrue(self.client.login(username='******')) response = self.client.get( reverse('get_status', kwargs={'contest_id': contest.id})).json() round_start_date = response['round_start_date'] round_end_date = response['round_end_date'] self.assertEqual(round_start_date, time.mktime(r1_start.timetuple())) self.assertEqual(round_end_date, time.mktime(r1_end.timetuple()) + 600)
def save(self, commit=True): instance = super(SimpleContestForm, self).save(commit=False) rounds = instance.round_set.all() if len(rounds) > 1: raise ValueError("SimpleContestForm does not support contests " "with more than one round.") if len(rounds) == 1: round = rounds[0] else: instance.save() round = Round(contest=instance, name=_("Round 1")) self._set_dates(round) round.save() if commit: instance.save() return instance
def test_countdown(self): contest = Contest.objects.get() now = time.time() r1_start = datetime.fromtimestamp(now - 5) r1_end = datetime.fromtimestamp(now + 10) r2_start = datetime.fromtimestamp(now - 10) r2_end = datetime.fromtimestamp(now + 5) r1 = Round(contest=contest, start_date=r1_start, end_date=r1_end) r2 = Round(contest=contest, start_date=r2_start, end_date=r2_end) r1.save() r2.save() response = self.client.get(reverse('get_status', kwargs={'contest_id': contest.id})).json() round_start_date = response['round_start_date'] round_end_date = response['round_end_date'] self.assertEqual(round_start_date, time.mktime(r2_start.timetuple())) self.assertEqual(round_end_date, time.mktime(r2_end.timetuple()))
def test_countdown(self): contest = Contest.objects.get() now = time.time() r1_start = datetime.fromtimestamp(now - 5) r1_end = datetime.fromtimestamp(now + 10) r2_start = datetime.fromtimestamp(now - 10) r2_end = datetime.fromtimestamp(now + 5) r1 = Round(contest=contest, start_date=r1_start, end_date=r1_end) r2 = Round(contest=contest, start_date=r2_start, end_date=r2_end) r1.save() r2.save() response = self.client.get(reverse('oioioi.clock.views.get_times_view')) response = json.loads(response.content) round_start_date = response['round_start_date'] round_end_date = response['round_end_date'] self.assertEqual(round_start_date, time.mktime(r2_start.timetuple())) self.assertEqual(round_end_date, time.mktime(r2_end.timetuple()))
def test_countdown(self): contest = Contest.objects.get() now = time.time() r1_start = datetime.fromtimestamp(now - 5) r1_end = datetime.fromtimestamp(now + 10) r2_start = datetime.fromtimestamp(now - 10) r2_end = datetime.fromtimestamp(now + 5) r1 = Round(contest=contest, start_date=r1_start, end_date=r1_end) r2 = Round(contest=contest, start_date=r2_start, end_date=r2_end) r1.save() r2.save() response = self.client.get( reverse('get_status', kwargs={'contest_id': contest.id})).json() round_start_date = response['round_start_date'] round_end_date = response['round_end_date'] self.assertEqual(round_start_date, time.mktime(r2_start.timetuple())) self.assertEqual(round_end_date, time.mktime(r2_end.timetuple()))