def test_tournaments(self): self.add_three_tournaments() tremonia_series.update_tournaments() tournaments = Tournament.objects.filter(name__startswith='Tremonia Series') self.assertEqual(tournaments.count(), 3) for id in [1, 2, 3]: self.assert_tournament(tournaments, id)
def handle(self, *args, **options): try: logger.info('Fetching Tremonia Series data...') tremonia_series.update_tournaments() logger.info('Tremonia Series data has been updated') except Exception as e: error_handler.handle(self, e)
def test_tournament_with_attendance(self): Friend.objects.create(username='******', first_name='Manolo', metrix_user_id='manolo') Friend.objects.create(username='******', first_name='Federico', metrix_user_id='fede') self.add_one_tournament(12345, 'Test', '3000-01-01', players=[('manolo', None, ''), ('fede', None, '')]) tremonia_series.update_tournaments() tournament = Tournament.objects.get(metrix_id=12345) attendance = set(tournament.attendance.all().values_list('friend__username', flat=True)) self.assertEqual(attendance, {'manolo', 'fede'})
def test_tournament_with_results(self): Friend.objects.create(username='******', first_name='Manolo', metrix_user_id='manolo') Friend.objects.create(username='******', first_name='Federico', metrix_user_id='fede') self.add_one_tournament(12345, 'Test', '1000-01-01', players=[('manolo', 1, ''), ('fede', 2, '')]) tremonia_series.update_tournaments() tournament = Tournament.objects.get(metrix_id=12345) results = [(result.friend.username, result.position, result.division.id) for result in tournament.results.all().order_by('position')] self.assertEqual(results, [('manolo', 1, 'MPO'), ('fede', 2, 'MPO')])
def test_tournament_date_change(self): Tournament.objects.create(metrix_id=12345, name='Tremonia Series #28', begin=date(year=1000, month=1, day=2), end=date(year=1000, month=1, day=3)) self.add_one_tournament(12345, 'Tremonia Series #28 (Putter)', '1000-01-01') tremonia_series.update_tournaments() tournament = Tournament.objects.get(metrix_id=12345) self.assertEqual(tournament.name, 'Tremonia Series #28 (Putter)') self.assertEqual(tournament.url, DISC_GOLF_METRIX_TOURNAMENT_PAGE.format(12345)) self.assertEqual(tournament.begin, date(year=1000, month=1, day=1)) self.assertEqual(tournament.end, date(year=1000, month=1, day=1))
def test_existing_tournament_adding_attendance(self): manolo = Friend.objects.create(username='******', first_name='Manolo', metrix_user_id='manolo') Friend.objects.create(username='******', first_name='Federico', metrix_user_id='fede') tournament = Tournament.objects.create(metrix_id=12345, name='Test', begin=date(year=3000, month=1, day=1), end=date(year=3000, month=1, day=1)) Attendance.objects.create(tournament=tournament, friend=manolo) self.add_one_tournament(12345, 'Test', '3000-01-01', players=[('manolo', None, ''), ('fede', None, '')]) tremonia_series.update_tournaments() tournament = Tournament.objects.get(metrix_id=12345) attendance = set(tournament.attendance.all().values_list('friend__username', flat=True)) self.assertEqual(attendance, {'manolo', 'fede'})
def test_add_automatic_tours(self): Friend.objects.create(username='******', first_name='Manolo', metrix_user_id='manolo') Friend.objects.create(username='******', first_name='Federico', metrix_user_id='fede') Tournament.objects.create(metrix_id=1, name='Tremonia Series #1', begin=date(year=1000, month=1, day=1), end=date(year=1000, month=1, day=1)) Tournament.objects.create(metrix_id=2, name='Tremonia Series #2', begin=date(year=1000, month=2, day=2), end=date(year=1000, month=2, day=2)) self.add_five_tournaments_for_tours(players=[('manolo', 1, ''), ('fede', 2, '')]) tremonia_series.update_tournaments() self.assert_tournament_in_tour('Ewige Tabelle', 'MPO', {1, 2, 3, 4, 5}) self.assert_tournament_in_tour('Tremonia Series 1000', 'MPO', {1, 2, 3}) # 1 and 2 already exist without tours self.assert_tournament_in_tour('Tremonia Series 2000', 'MPO', {4, 5})
def test_tournament_with_existing_results(self): tournament = Tournament.objects.create(metrix_id=12345, name='Test', begin=date(year=1000, month=1, day=1), end=date(year=1000, month=1, day=1)) manolo = Friend.objects.create(username='******', first_name='Manolo', metrix_user_id='manolo') fede = Friend.objects.create(username='******', first_name='Federico', metrix_user_id='fede') Result.objects.create(friend=manolo, tournament=tournament, position=2, division=Division.objects.get(id='MPO')) Result.objects.create(friend=fede, tournament=tournament, position=1, division=Division.objects.get(id='MPO')) self.add_one_tournament(12345, 'Test', '1000-01-01', players=[('manolo', 1, ''), ('fede', 2, '')]) tremonia_series.update_tournaments() tournament = Tournament.objects.get(metrix_id=12345) self.assertEqual(tournament.results.all().count(), 2) # no results were added results = [(result.friend.username, result.position, result.division.id) for result in tournament.results.all().order_by('position')] self.assertEqual(results, [('fede', 1, 'MPO'), ('manolo', 2, 'MPO')])
def test_tournament_with_results_from_different_divisions(self): Friend.objects.create(username='******', first_name='Manolo', metrix_user_id='manolo') Friend.objects.create(username='******', first_name='David', metrix_user_id='david') Friend.objects.create(username='******', first_name='Chris', metrix_user_id='chris') Friend.objects.create(username='******', first_name='Marcel', metrix_user_id='marcel') self.add_one_tournament(12345, 'Test', '1000-01-01', players=[('manolo', 1, 'Open'), ('david', 2, 'Open'), ('chris', 3, 'Open'), ('jan', 1, 'Amateur'), ('anna', 2, 'Amateur'), ('marcel', 3, 'Amateur')]) tremonia_series.update_tournaments() tournament = Tournament.objects.get(metrix_id=12345) results = [(result.friend.username, result.position, result.division.id) for result in tournament.results.all().order_by('-division__id', 'position')] self.assertEqual(results, [('manolo', 1, 'MPO'), ('david', 2, 'MPO'), ('chris', 3, 'MPO'), ('jan', 1, 'MA4'), ('anna', 2, 'MA4'), ('marcel', 3, 'MA4')])