コード例 #1
0
    def test_with_raceclass(self):
        f = StringIO.StringIO("\n".join(self.data))

        user = User()
        user.first_name = "CHRIS"
        user.last_name = "brubaker"
        user.username = "******"
        user.save()

        self.r = Registration()
        self.r.number = 11
        self.r.race_class = self.rc
        self.r.pax_class = None
        self.r.club = self.c
        self.r.event = self.e

        result = parse_axtime(self.e, self.session, f)[0]
        runs = result.runs.all()

        self.assertEqual(len(runs), 8)
        self.assertEqual(result.best_run, runs[2])

        reg = result.reg
        self.assertEqual(reg.user, user)

        self.assertEqual(reg.number, 73)
コード例 #2
0
    def test_with_raceclass(self):
        f = StringIO.StringIO("\n".join(self.data))

        user = User()
        user.first_name = "CHRIS"
        user.last_name = "brubaker"
        user.username = "******"
        user.save()

        self.r = Registration()
        self.r.number = 11
        self.r.race_class = self.rc
        self.r.pax_class = None
        self.r.club = self.c
        self.r.event = self.e

        result = parse_axtime(self.e, self.session, f)[0]
        runs = result.runs.all()
        
        self.assertEqual(len(runs), 8)
        self.assertEqual(result.best_run, runs[2])

        reg = result.reg
        self.assertEqual(reg.user, user)

        self.assertEqual(reg.number, 73)
コード例 #3
0
    def test_missing_raceclass(self): 
        RaceClass.objects.all().delete()

        f = StringIO.StringIO("\n".join(self.data))

        results = parse_axtime(self.e, self.session, f)

        self.assertEqual(results, 
                        {'results_file': 'Your results for CHRIS BRUBAKER included an unknown race class: STS'})
コード例 #4
0
    def test_missing_raceclass(self):
        RaceClass.objects.all().delete()

        f = StringIO.StringIO("\n".join(self.data))

        results = parse_axtime(self.e, self.session, f)

        self.assertEqual(
            results, {
                'results_file':
                'Your results for CHRIS BRUBAKER included an unknown race class: STS'
            })
コード例 #5
0
    def test_with_raceclass_anon(self):
        f = StringIO.StringIO("\n".join(self.data))

        results = parse_axtime(self.e, self.session, f)

        result = results[0]
        runs = result.runs.all()

        self.assertEqual(len(runs), 8)
        self.assertEqual(result.best_run, runs[2])

        self.assertEqual(result.reg._anon_f_name, 'CHRIS')
        self.assertEqual(result.reg._anon_l_name, 'BRUBAKER')
        self.assertEqual(result.reg.user, AnonymousUser())
コード例 #6
0
    def test_with_raceclass_anon(self):
        f = StringIO.StringIO("\n".join(self.data))

        results = parse_axtime(self.e, self.session, f)
        
        result = results[0]
        runs = result.runs.all()

        self.assertEqual(len(runs), 8)
        self.assertEqual(result.best_run, runs[2])

        self.assertEqual(result.reg._anon_f_name, 'CHRIS')
        self.assertEqual(result.reg._anon_l_name, 'BRUBAKER')
        self.assertEqual(result.reg.user, AnonymousUser())
コード例 #7
0
    def test_multi_results(self): 
        self.data.append('"CHRIS","MCPHERSON","NORA","R","13","","90 HONDA CIVIC SI","","   ","     ","  1","  2","","22929","SUMMERNIGH","STC","","","","","Y","","  ","","   ","  ","  59.740"," 0","   ","  58.399"," 0","   ","  56.798"," 2","   ","  57.131"," 0","   ","  55.374"," 0","   ","  55.374","  56.671"," 0","   ","  56.519"," 0","   ","  56.225"," 0","   ","  55.629"," 0","   ","   0.000"," 0","   ","  55.629","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    "')
        f = StringIO.StringIO("\n".join(self.data))

        results = parse_axtime(self.e, self.session, f)

        self.assertEqual(len(results), 2)

        result = results[0]
        self.assertEqual(result.reg.race_class, self.rc)
        self.assertEqual(result.reg.pax_class, None)

        result = results[1]
        self.assertEqual(result.reg.race_class, self.rc3)
        self.assertEqual(result.reg.pax_class, self.rc2)
コード例 #8
0
    def test_multi_results(self):
        self.data.append(
            '"CHRIS","MCPHERSON","NORA","R","13","","90 HONDA CIVIC SI","","   ","     ","  1","  2","","22929","SUMMERNIGH","STC","","","","","Y","","  ","","   ","  ","  59.740"," 0","   ","  58.399"," 0","   ","  56.798"," 2","   ","  57.131"," 0","   ","  55.374"," 0","   ","  55.374","  56.671"," 0","   ","  56.519"," 0","   ","  56.225"," 0","   ","  55.629"," 0","   ","   0.000"," 0","   ","  55.629","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    ","    "'
        )
        f = StringIO.StringIO("\n".join(self.data))

        results = parse_axtime(self.e, self.session, f)

        self.assertEqual(len(results), 2)

        result = results[0]
        self.assertEqual(result.reg.race_class, self.rc)
        self.assertEqual(result.reg.pax_class, None)

        result = results[1]
        self.assertEqual(result.reg.race_class, self.rc3)
        self.assertEqual(result.reg.pax_class, self.rc2)
コード例 #9
0
def upload_results(request, event_id): 
    validate_error = dict()

    event = Event.objects.get(pk=event_id)
    admin = is_club_admin(request.user, event.club)
    if not admin: 
        return HttpResponseForbidden()

    try: 
        name = request.POST.get('name') 
        if not name: 
            validate_error['name'] = "you must name the session"
            raise ValueError

        session = Session()
        session.club = event.club
        session.event = event
        session.save()

        f = StringIO.StringIO(request.FILES['results_file'].read())

        results = parse_axtime(event, session, f)

        if isinstance(results, dict): #some kind of error happened
            validate_error = results
            raise ValueError

        transaction.rollback()    
        return HttpResponse(content=json.dumps({'msg': "success"}), mimetype="application/json", status=200)
        
    except Exception:
        #import traceback
        #tb = traceback.format_exc()
        session.delete()
        transaction.rollback()
        print json.dumps(validate_error)
        return HttpResponse(content=json.dumps(validate_error), mimetype="application/json", status=400)