class JudgeTest(TestCase): def setUp(self): self.contest = Contest() self.contest.name = 'Test Contest' self.contest.players_count = 1 self.contest.save() self.judge = Judge() self.judge.path = 'some path' self.judge.was_default_judge = True self.judge.contest = self.contest self.judge.save() self.match = Match() self.match.judge = self.judge self.match.contest = self.contest self.match.save() self.user = GladosUser.objects.create_user("test_user") self.program = Program() self.program.user = self.user self.program.contest = self.contest self.program.name = 'test program' self.program.save() self.match_log = MatchLog() self.match_log.body = 'some random text' self.match_log.match = self.match self.match_log.save()
def test_add_match_duplicate(self): day = MatchDay('Tuesday') avb1 = Match(Team('A'), Team('B')) avb2 = Match(Team('B'), Team('A')) avb3 = Match(Team('A'), Team('B')) self.assertEqual(day.add_match(avb1), avb1) self.assertEqual(day.add_match(avb2), False) self.assertEqual(day.add_match(avb3), False)
def obtain_group_zone_games(): groups_info = pd.read_csv('calculator/data/group_zone_matches.csv') for index, row in groups_info.iterrows(): group = Group.get_or_create(group_name=row['group']) date = datetime.strptime(row['date'], '%d/%m/%Y %H:%M') Match.new_with(date=date, home_team=row['home'], visiting_team=row['visiting'], group=group)
class ContestTest(TestCase): def setUp(self): self.contest = Contest() self.contest.name = 'Test Contest' self.contest.players_count = 1 self.contest.save() self.judge = Judge() self.judge.path = 'some path' self.judge.was_default_judge = True self.judge.contest = self.contest self.judge.save() self.match = Match() self.match.judge = self.judge self.match.contest = self.contest self.match.save() self.user = GladosUser.objects.create_user("test_user") self.program = Program() self.program.user = self.user self.program.contest = self.contest self.program.name = 'test program' self.program.save() self.match_log = MatchLog() self.match_log.body = 'some random text' self.match_log.match = self.match self.match_log.save() def test_contest_clean_start_end_time_invalid(self): self.contest.end = timezone.now() self.contest.start = self.contest.end + timezone.timedelta(days=1) exception = None try: self.contest.save() except ValidationError as e: exception = e self.assertTrue(exception, "contest start can't occur after contest end") def test_contest_clean_start_end_time_correct(self): self.contest.end = timezone.now() self.contest.start = self.contest.end - timezone.timedelta(days=1) exception = None try: self.contest.save() except ValidationError as e: exception = e self.assertFalse(exception, "contest start can occur after contest end: {}".format(exception))
class ProgramMatchTest(TestCase): def setUp(self): self.contest = Contest() self.contest.name = 'Test Contest' self.contest.players_count = 1 self.contest.save() self.judge = Judge() self.judge.path = 'some path' self.judge.was_default_judge = True self.judge.contest = self.contest self.judge.save() self.match = Match() self.match.judge = self.judge self.match.contest = self.contest self.match.save() self.user = GladosUser.objects.create_user("test_user") self.program = Program() self.program.user = self.user self.program.contest = self.contest self.program.name = 'test program' self.program.save() self.match_log = MatchLog() self.match_log.body = 'some random text' self.match_log.match = self.match self.match_log.save() def test_program_match_uniqueness(self): pm = ProgramMatch() pm.program = self.program pm.match = self.match pm.save() pm = ProgramMatch() pm.program = self.program pm.match = self.match exception = None try: pm.save() except IntegrityError as e: exception = e self.assertTrue(exception, "(program match) pair is not unique")
def setup_matches(teams): matches = set() for home_team in teams: for away_team in teams: if home_team != away_team: matches.add(Match(home_team, away_team)) return matches
def travel(self, obj): now = datetime.datetime.now(tz=get_current_timezone()) if obj.eated and obj.showerd and not obj.matched: obj.out_time = now + datetime.timedelta( minutes=random.randint(1, 5)) # obj.out_time = now + datetime.timedelta(minutes=random.randint(10, 30)) obj.return_time = now + datetime.timedelta( minutes=random.randint(6, 9)) # obj.return_time = now + datetime.timedelta(hours=random.randint(1, 10)) obj.matched = True ms = Match.objects.filter(pet=obj) if ms.exists(): ms = ms[0] ms.delete() match = Match(pet=obj) # 特征 # match.character = 0x01 # match.wish = 0x01 match.save() return True
class MatchLogTest(TestCase): def setUp(self): self.contest = Contest() self.contest.name = 'Test Contest' self.contest.players_count = 1 self.contest.save() self.judge = Judge() self.judge.path = 'some path' self.judge.was_default_judge = True self.judge.contest = self.contest self.judge.save() self.match = Match() self.match.judge = self.judge self.match.contest = self.contest self.match.save() self.user = GladosUser.objects.create_user("test_user") self.program = Program() self.program.user = self.user self.program.contest = self.contest self.program.name = 'test program' self.program.save() self.match_log = MatchLog() self.match_log.body = 'some random text' self.match_log.match = self.match self.match_log.save() def test_no_logs_before_match_start_invalid(self): self.match.start = timezone.now() self.match.save() self.match_log.match = self.match self.match_log.time = self.match.start - timezone.timedelta(days=1) exception = None try: self.match_log.save() except ValidationError as e: exception = e self.assertTrue(exception, "log with earlier date than match start") def test_no_logs_before_match_start_correct(self): self.match.start = timezone.now() self.match.save() self.match_log.match = self.match self.match_log.time = self.match.start + timezone.timedelta(days=1) exception = None try: self.match_log.save() except ValidationError as e: print e exception = e self.assertFalse(exception, "log with earlier date than match start: {}".format(exception))
class MatchTest(TestCase): def setUp(self): self.contest = Contest() self.contest.name = 'Test Contest' self.contest.players_count = 1 self.contest.save() self.judge = Judge() self.judge.path = 'some path' self.judge.was_default_judge = True self.judge.contest = self.contest self.judge.save() self.match = Match() self.match.judge = self.judge self.match.contest = self.contest self.match.save() self.user = GladosUser.objects.create_user("test_user") self.program = Program() self.program.user = self.user self.program.contest = self.contest self.program.name = 'test program' self.program.save() self.match_log = MatchLog() self.match_log.body = 'some random text' self.match_log.match = self.match self.match_log.save() def test_matches_judge_was_default_invalid(self): self.judge.was_default_judge = False self.match.judge = self.judge exception = None try: self.judge.save() self.match.save() except ValidationError as e: exception = e self.assertTrue(exception, "especially for Mr. Maciek") def test_matches_judge_was_default_correct(self): self.judge.was_default_judge = True self.match.judge = self.judge exception = None try: self.judge.save() self.match.save() except ValidationError as e: exception = e self.assertFalse(exception, "especially for Mr. Maciek: {}".format(exception)) def test_match_starts_after_contest_invalid(self): self.contest.start = timezone.now() self.match.start = self.contest.start - timezone.timedelta(days=1) exception = None try: self.contest.save() self.match.save() except ValidationError as e: exception = e self.assertTrue(exception, "does not throw exception when match starts before the contest starts") def test_match_starts_after_contest_correct(self): self.contest.start = timezone.now() self.match.start = self.contest.start + timezone.timedelta(days=1) exception = None try: self.contest.save() self.match.save() except ValidationError as e: exception = e self.assertFalse(exception, "does throw exception even when match starts correctly after contest starts")
def test_add_match_success(self): day = MatchDay('Tuesday') avb = Match(Team('A'), Team('B')) output = day.add_match(avb) self.assertEqual(output, avb)