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)
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'})
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' })
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())
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)
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)
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)