Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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'})
Example #4
0
    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')])
Example #5
0
    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))
Example #6
0
    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'})
Example #7
0
    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})
Example #8
0
    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')])
Example #9
0
    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')])