def testUniqueSafeName(self): c = Club() c.name = "Some - Racers" c.save() new_c = Club() new_c.name = "some-racers" try: new_c.full_clean() except ValidationError as err: self.assertEqual("{'safe_name': [u'Club with this Safe_name already exists.']}", str(err)) else: self.fail("ValidationError expected")
def testUniqueSafeName(self): c = Club() c.name = "Some - Racers" c.save() new_c = Club() new_c.name = "some-racers" try: new_c.full_clean() except ValidationError as err: self.assertEqual( "{'safe_name': [u'Club with this Safe_name already exists.']}", str(err)) else: self.fail("ValidationError expected")
class TestPostForms(ResourceTestCase): def setUp(self): super(TestPostForms, self).setUp() self.c = Club() self.c.name = "test club" self.c.full_clean() self.c.save() self.season = Season() self.season.club = self.c self.season.year = 2011 self.season.save() self.race_class = RaceClass() self.race_class.name = "CSP" self.race_class.abrv = "CSP" self.race_class.pax = .875 self.race_class.club = self.c self.race_class.save() self.e = Event() self.e.name = "test event" self.e.date = datetime.date.today() self.e.season = self.season self.e.club = self.c self.e.save() self.user = User() self.user.first_name = "Justin" self.user.last_name = "Gray" self.user.username = "******" self.user.save() self.c.group.user_set.add(self.user) self.c.save() self.user.set_password("test") self.user.save() self.r = Registration() self.r.number = 11 self.r.race_class = self.race_class self.r.pax_class = None self.r.club = self.c self.r.event = self.e def get_credentials(self): resp = self.api_client.client.login(username='******', password='******') return resp def test_assoc_reg_user(self): self.r.save() data = { "username": "******", } self.get_credentials() resp = self.api_client.client.post('/garage/reg/%s/driver' % self.r.pk, data) self.assertValidJSONResponse(resp) post_data = self.deserialize(resp) resp = self.api_client.get('/garage/api/v1/registration/%d/' % self.r.pk) self.assertValidJSONResponse(resp) get_data = self.deserialize(resp) self.assertEqual(post_data, get_data)
class TestMembership(unittest.TestCase): def setUp(self): self.c = Club() self.c.name = "test club" self.c.full_clean() self.c.save() self.user1 = User() self.user1.first_name = "Justin" self.user1.last_name = "Gray" self.user1.username = "******" self.user1.save() self.user2 = User() self.user2.first_name = "Sirius" self.user2.last_name = "Gray" self.user2.username = "******" self.user2.save() m = Membership() m.user_prof = self.user1.get_profile() m.club = self.c m.num = 1 m.start = datetime.date.today() - datetime.timedelta(days=300) m.valid_thru = datetime.date.today() + datetime.timedelta(days=1) m.paid = True m.full_clean() m.save() def tearDown(self): clear_db() def test_is_active_member(self): self.assertTrue(self.c.is_active_member(self.user1)) self.assertFalse(self.c.is_active_member(self.user2)) m = Membership() m.user_prof = self.user2.get_profile() m.club = self.c m.num = 2 m.start = datetime.date.today() - datetime.timedelta(days=300) m.valid_thru = datetime.date.today() m.full_clean() m.save() #make sure expired memberships don't report as active self.assertFalse(self.c.is_active_member(self.user2)) def test_duplicate_id(self): m = Membership() m.user_prof = self.user2.get_profile() m.club = self.c m.num = 1 m.start = datetime.date.today() - datetime.timedelta(days=300) m.valid_thru = datetime.date.today() + datetime.timedelta(days=1) try: m.full_clean() m.save() except ValidationError as err: self.assertEqual( str(err), "{'__all__': [u'A member with that number already exists']}") else: self.fail("ValidationError expected") def test_auto_increment_number(self): m = Membership() m.user_prof = self.user2.get_profile() m.club = self.c m.start = datetime.date.today() - datetime.timedelta(days=300) m.valid_thru = datetime.date.today() m.full_clean() m.save() self.assertEqual(m.num, 2) def test_is_member(self): up = self.user1.get_profile() self.assertTrue(up.is_member(self.c))
class TestRegistration(unittest.TestCase): def setUp(self): self.c = Club() self.c.name = "test club" self.c.full_clean() self.c.save() self.season = Season() self.season.club = self.c self.season.year = 2011 self.season.save() self.race_class = RaceClass() self.race_class.name = "CSP" self.race_class.abrv = "CSP" self.race_class.pax = .875 self.race_class.club = self.c self.race_class.save() self.e = Event() self.e.name = "test event" self.e.date = datetime.date.today() self.e.season = self.season self.e.club = self.c self.e.save() self.user = User() self.user.first_name = "Justin" self.user.last_name = "Gray" self.user.username = "******" self.user.save() self.user2 = User() self.user2.first_name = "Eli" self.user2.last_name = "Gray" self.user2.username = "******" self.user2.save() self.car = Car() self.car.year = 1990 self.car.make = "Mazda" self.car.model = "Miata" self.car.user_profile = self.user.get_profile() self.car.save() self.r = Registration() self.r.number = 11 self.r.race_class = self.race_class self.r.pax_class = None self.r.club = self.c self.r.event = self.e self.user_profile = UserProfile.objects.get(user=self.user) self.user_profile2 = UserProfile.objects.get(user=self.user2) def tearDown(self): clear_db() def test_default_pax_class(self): pax_class = RaceClass() pax_class.name = "Street Tire" pax_class.abrv = "T" pax_class.pax = 1 pax_class.club = self.c pax_class.pax_class = True pax_class.hidden = True pax_class.save() other_pax_class = RaceClass() other_pax_class.name = "Pro" other_pax_class.abrv = "X" other_pax_class.pax = 1 other_pax_class.club = self.c other_pax_class.pax_class = True other_pax_class.hidden = False other_pax_class.save() race_class = RaceClass() race_class.name = "HS" race_class.abrv = "HS" race_class.pax = .5 race_class.club = self.c race_class.default_pax_class = pax_class race_class.save() self.r.race_class = race_class self.r.save() self.assertEqual(self.r.pax_class, pax_class) #set it back to CSP self.r.race_class = self.race_class self.r.save() self.assertEqual(self.r.pax_class, None) #make sure pax_class does not change self.r.pax_class = other_pax_class self.r.save() self.assertEqual(self.r.pax_class, other_pax_class) self.r.race_class = race_class self.r.save() self.assertEqual(self.r.pax_class, other_pax_class) def test_calc_times_empty_results(self): self.r.save() self.r.calc_times() self.assertEqual(self.r.total_raw_time, 0) self.assertEqual(self.r.total_index_time, 0) def test_calc_times(self): self.r.save() sess = Session() sess.name = "AM" sess.event = self.e sess.club = self.c sess.save() res = Result() res.reg = self.r res.session = sess res.club = self.c res.save() r = Run() r.base_time = 10.0 r.result = res r.club = self.c r.save() res = Result() res.reg = self.r res.session = sess res.club = self.c res.save() r = Run() r.base_time = 10.0 r.result = res r.club = self.c r.save() self.r.save() self.r.calc_times() self.assertEqual(self.r.total_raw_time, 20.0) self.assertEqual(self.r.total_index_time, self.r.total_raw_time * self.race_class.pax) def testAnon(self): self.r._anon_f_name = "Justin" self.r._anon_l_name = "Gray" self.r._anon_car = "1990 Mazda Miata" self.r.save() self.assertEqual("Justin", self.r.first_name) self.assertEqual("Gray", self.r.last_name) self.assertEqual("1990 Mazda Miata", self.r.car_name) self.r.associate_with_user(self.user2.username) self.r.save() self.assertEqual("Eli", self.r.first_name) self.assertEqual("Gray", self.r.last_name) self.assertEqual("1990 Mazda Miata", self.r.car_name) def testWithCar(self): self.r.car = self.car self.r.user_profile = self.user_profile self.r.save() self.assertEqual("Justin", self.r.first_name) self.assertEqual("Gray", self.r.last_name) self.assertEqual("1990 Mazda Miata", self.r.car_name) def testAllowedNumberRaceClass(self): self.r.car = self.car self.r.user_profile = self.user_profile self.r.save() self.r2 = Registration() self.r2.number = 11 self.r2.race_class = self.race_class self.r2.pax_class = None self.r2.club = self.c self.r2.event = self.e try: self.r2.full_clean() except ValidationError as err: self.assertEqual( "{'__all__': [u'11 CSP is already taken, pick another number.']}", str(err)) else: self.fail("ValidationError expected") #make sure you can save an existing reg self.r2.number = 12 self.r2.save() self.r.number = 12 #self.r.save() try: self.r.full_clean() except ValidationError as err: self.assertEqual( "{'__all__': [u'12 CSP is already taken, pick another number.']}", str(err)) else: self.fail("ValidationError expected") self.e2 = Event() self.e2.name = "test event 2" self.e2.date = datetime.date.today() self.e2.season = self.season self.e2.club = self.c self.e2.save() self.r3 = Registration() self.r3.number = 77 self.r3.race_class = self.race_class self.r3.pax_class = None self.r3.event = self.e2 self.r3.club = self.c self.r3.save() self.e.child_events.add(self.e2) self.e.save() self.r2.number = 77 try: self.r2.full_clean() except ValidationError as err: self.assertEqual( "{'__all__': [u'77 CSP is already taken, pick another number.']}", str(err)) else: self.fail("ValidationError expected") def testMaxUserRegLimit(self): self.e2 = Event() self.e2.name = "test event 2" self.e2.date = datetime.date.today() self.e2.season = self.season self.e2.club = self.c self.e2.save() self.race_class.user_reg_limit = 1 self.race_class.save() self.r.car = self.car self.r.user_profile = self.user_profile self.r.event = self.e self.r.save() self.r2 = Registration() self.r2.number = 11 self.r2.race_class = self.race_class self.r2.pax_class = None self.r2.event = self.e2 self.r2.club = self.c self.r2.user_profile = self.user_profile try: self.r2.full_clean() except ValidationError as err: self.assertEqual( "{'__all__': [u'You have reached the registration limit for CSP.']}", str(err)) else: self.fail("ValidationError expected") def testEventRegLimit(self): self.race_class.event_reg_limit = 1 self.race_class.save() self.r.car = self.car self.r.event = self.e self.r.user_profile = self.user_profile self.r.save() self.r2 = Registration() self.r2.number = 21 self.r2.race_class = self.race_class self.r2.pax_class = None self.r2.club = self.c self.r2.event = self.e try: self.r2.full_clean() except ValidationError as err: self.assertEqual( "{'__all__': [u'Only 1 registrations for CSP are " "allowed for an event. The class is full']}", str(err)) else: self.fail("ValidationError expected") #test that a user can only register once, regardless of class self.race_class.event_reg_limit = 10 self.race_class.save() self.r2.number = 111 self.r2.race_class = self.race_class self.r2.pax_class = None self.r2.event = self.e self.r2.user_profile = self.user_profile try: self.r2.full_clean() except ValidationError as err: self.assertEqual( "{'__all__': [u'You have already registered to run as 11 CSP']}", str(err)) else: self.fail("ValidationError expected") def testCarDeleteFromReg(self): """Check to make sure reg_car gets set to null if a car gets deleted""" self.r.car = self.car self.r.save() self.assertEqual(self.r.car, self.car) self.car.delete() reg = Registration.objects.filter(number=11).get() self.assertIsNone(reg.car) def testMoveToBumpClass(self): bump_class = RaceClass() bump_class.name = "Index" bump_class.pax = 1.0 bump_class.club = self.c bump_class.save() self.r.bump_class = bump_class self.r.save() self.assertEqual(self.r.race_class, self.race_class) self.assertEqual(self.r.bump_class, bump_class) def testMakeAssocRegs(self): e2 = Event() e2.name = "test event 2" e2.date = datetime.date.today() e2.season = self.season e2.club = self.c e2.save() self.e.child_events.add(e2) self.e.save() self.r.make_assoc_regs() regs = Registration.objects.filter(event=e2).all() self.assertEqual(len(regs), 1) def testUpdateAssocRegs(self): e2 = Event() e2.name = "test event 2" e2.date = datetime.date.today() e2.season = self.season e2.club = self.c e2.save() self.e.child_events.add(e2) self.e.save() self.r.make_assoc_regs() self.r.number = 10 self.r.save() self.r.update_assoc_regs() reg = Registration.objects.filter(event=e2).get() self.assertEqual(reg.number, self.r.number)
class TestOrder(unittest.TestCase): def tearDown(self): clear_db() def setUp(self): self.c = Club() self.c.name = "test club" self.c.full_clean() self.c.save() self.season = Season() self.season.club = self.c self.season.year = 2011 self.season.save() self.race_class = RaceClass() self.race_class.name = "CSP" self.race_class.pax = .875 self.race_class.club = self.c self.race_class.save() self.e = Event() self.e.name = "test event" self.e.date = datetime.date.today() self.e.season = self.season self.e.club = self.c self.e.save() self.user = User() self.user.first_name = "justin" self.user.last_name = "gray" self.user.username = "******" self.user.save() self.user2 = User() self.user2.first_name = "sirius" self.user2.last_name = "gray" self.user2.username = "******" self.user2.save() def test_total_price(self): self.o = Order() self.o.user_prof = self.user.get_profile() self.o.save() item1 = Registration() item1.number = 11 item1.race_class = self.race_class item1.pax_class = None item1.event = self.e item1.price = "40.00" item1.order = self.o item1.club = self.c item1.save() item2 = Membership() item2.user_prof = self.user.get_profile() item2.club = self.c item2.num = 1 item2.start = datetime.date.today() - datetime.timedelta(days=300) item2.valid_thru = datetime.date.today() + datetime.timedelta(days=1) item2.price = "60.00" item2.order = self.o item2.save() self.o.calc_total_price() self.assertEqual(self.o.total_price, "100.00") club = Club() club.name = "test-test" club.save() c = Coupon() c.discount_amount = "10.00" c.permanent = True c.code = "aaa" c.expires = datetime.date.today() + datetime.timedelta(days=1) c.club = club c.save() self.o.coupon = c self.o.calc_total_price() self.assertEqual(self.o.total_price, '90.00')
class TestEventPointsCalc(unittest.TestCase): def setUp(self): self.c = Club() self.c.name = "test club" self.c.full_clean() self.c.save() self.season = Season() self.season.club = self.c self.season.year = 2011 self.season.save() self.e = Event() self.e.name = "test event" self.e.date = datetime.date.today() self.e.season = self.season self.e.club = self.c self.e.save() self.sess = Session() self.sess.name = "AM" self.sess.event = self.e self.sess.club = self.c self.sess.save() self.classes = ["A", "B", "C", "D", "E", "F", "G", "H"] self.paxes = [1.0, .98, .96, .94, .92, .90, .88, .86] for klass, pax in zip(self.classes, self.paxes): self.race_class = RaceClass() self.race_class.name = klass self.race_class.pax = pax self.race_class.club = self.c self.race_class.save() for i in range(0, 10): self.r = Registration() self.r.number = i self.r.race_class = self.race_class self.r._anon_f_name = "%s%d"%(self.race_class.name, i) self.r.pax_class = None self.r.event = self.e self.r.club = self.c self.r.save() #make two regs with empty runs for each class if self.race_class.name!="H" and i < 8: #one race class with no results self.result = Result() self.result.reg = self.r self.result.session = self.sess self.result.club = self.c self.result.save() for j in range(0, 3): run = Run() run.base_time = 100.0-i-j #91.0 is lowest raw time (*0.88 for index) run.result = self.result run.club = self.c run.save() def tearDown(self): clear_db() def test_no_index_classes_one_result(self): race_classes = self.e.calc_results() self.assertEqual(["A", "B", "C", "D", "E", "F", "G"], [rc.name for rc in race_classes]) #make sure the results come back sorted for rc, regs in race_classes.iteritems(): #all race_classes should have 8 regs in the results self.assertEqual(regs, sorted(regs, key=lambda x: x.total_index_time)) self.assertEqual(class_point_ladder[:8], [reg.class_points for reg in regs]) self.assertEqual(8, len(regs)) regs = self.e.get_results() self.assertEqual(regs[0].total_index_time, (91.0)*.88) self.assertEqual(index_point_ladder[:56], [reg.index_points for reg in regs]) def test_no_index_classes_two_result(self): self.sess = Session() self.sess.name = "PM" self.sess.event = self.e self.sess.club = self.c self.sess.save() for klass, pax in zip(self.classes, self.paxes): self.race_class = RaceClass.objects.filter(name=klass).get() for i in range(0, 10): self.r = Registration.objects.filter(_anon_f_name="%s%d"%(self.race_class.name, i)).get() #make regs with empty runs for each class if self.race_class.name!="H" and i < 8: #one race class with no results self.result = Result() self.result.reg = self.r self.result.session = self.sess self.result.club = self.c self.result.save() for j in range(0, 3): run = Run() run.base_time = 100.0-i-j run.result = self.result run.club = self.c run.save() self.r = Registration.objects.filter(_anon_f_name="%s%d"%(self.race_class.name, i)).get() race_classes = self.e.calc_results() self.assertEqual(["A", "B", "C", "D", "E", "F", "G"], [rc.name for rc in race_classes]) #make sure the results come back sorted for rc, regs in race_classes.iteritems(): #all race_classes should have 8 regs in the results self.assertEqual(regs, sorted(regs, key=lambda x: x.total_index_time)) self.assertEqual(class_point_ladder[:8], [reg.class_points for reg in regs]) self.assertEqual(8, len(regs)) regs = self.e.get_results() self.assertEqual(regs[0].total_index_time, 2*(91.0)*.88) self.assertEqual(index_point_ladder[:56], [reg.index_points for reg in regs]) def test_pax_class_one_result(self): self.race_class = RaceClass() self.race_class.name = "Pro" self.race_class.abrv ="X" self.race_class.pax = 1.0 self.race_class.pax_class=True self.race_class.club = self.c self.race_class.save() for i, pax_name in zip(range(0, 7), self.classes): rc = RaceClass.objects.filter(name=pax_name).get() self.r = Registration() self.r.number = 10*(1+i) self.r.race_class = rc self.r._anon_f_name = "%s_%d"%(self.race_class.name, i) self.r.pax_class = self.race_class self.r.event = self.e self.r.club = self.c self.r.save() #make regs with runs for each class if rc.name!="H": self.result = Result() self.result.reg = self.r self.result.session = self.sess self.result.club = self.c self.result.save() for j in range(0, 3): run = Run() run.base_time = 100.0-i-j run.result = self.result run.club = self.c run.save() race_classes = self.e.calc_results() self.assertEqual([u"A", u"B", u"C", u"D", u"E", u"F", u"G", u"Pro"], [rc.name for rc in race_classes]) #make sure the results come back sorted for rc, regs in race_classes.iteritems(): #all race_classes should have 8 regs in the results self.assertEqual(regs, sorted(regs, key=lambda x: x.total_index_time)) if rc.name != "Pro": self.assertEqual(class_point_ladder[:8], [reg.class_points for reg in regs]) self.assertEqual(8, len(regs)) else: self.assertEqual(class_point_ladder[:7], [reg.class_points for reg in regs]) self.assertEqual(7, len(regs)) regs = self.e.get_results() self.assertEqual(regs[0].total_index_time, (91.0)*.88) self.assertEqual(index_point_ladder[:63], [reg.index_points for reg in regs]) def test_one_bump_class_one_result(self): self.race_class = RaceClass() self.race_class.name = "index" self.race_class.pax = 1.0 self.race_class.club = self.c self.race_class.save() for i, pax_name in zip(range(0, 7), self.classes): rc = RaceClass.objects.filter(name=pax_name).get() self.r = Registration() self.r.number = 10*(1+i) self.r.race_class = rc self.r._anon_f_name = "%s_%d"%(self.race_class.name, i) self.r.bump_class = self.race_class self.r.event = self.e self.r.club = self.c self.r.save() #make regs with empty runs for each class if rc.name!="H": self.result = Result() self.result.reg = self.r self.result.session = self.sess self.result.club = self.c self.result.save() for j in range(0, 3): run = Run() run.base_time = 100.0-i-j run.result = self.result run.club = self.c run.save() race_classes = self.e.calc_results() self.assertEqual(["A", "B", "C", "D", "E", "F", "G", "index"], [rc.name for rc in race_classes]) #make sure the results come back sorted for rc, regs in race_classes.iteritems(): #all race_classes should have 8 regs in the results self.assertEqual(regs, sorted(regs, key=lambda x: x.total_index_time)) if rc.name != "index": self.assertEqual(class_point_ladder[:8], [reg.class_points for reg in regs]) self.assertEqual(8, len(regs)) else: self.assertEqual(class_point_ladder[:7], [reg.class_points for reg in regs]) self.assertEqual(7, len(regs)) regs = self.e.get_results() self.assertEqual(regs[0].total_index_time, (91.0)*.88) self.assertEqual(index_point_ladder[:63], [reg.index_points for reg in regs]) def test_two_bump_class_one_result(self): self.race_class1 = RaceClass() self.race_class1.name = "index1" self.race_class1.pax = 1.0 self.race_class1.club = self.c self.race_class1.save() self.race_class2 = RaceClass() self.race_class2.name = "index2" self.race_class2.pax = 1.0 self.race_class2.club = self.c self.race_class2.save() for i, pax_name in zip(range(0, 7), self.classes): pax_class = RaceClass.objects.filter(name=pax_name).get() self.r = Registration() self.r.number = 10*(1+i) self.r.race_class = pax_class self.r._anon_f_name = "%s_%d"%(self.race_class2.name, i) self.r.bump_class = self.race_class1 self.r.event = self.e self.r.club = self.c self.r.save() #make regs with empty runs for each class if pax_class.name!="H": self.result = Result() self.result.reg = self.r self.result.session = self.sess self.result.club = self.c self.result.save() for j in range(0, 3): run = Run() run.base_time = 100.0-i-j run.result = self.result run.club = self.c run.save() self.r = Registration() self.r.number = 60*(1+i) self.r.race_class = pax_class self.r._anon_f_name = "%s_%d"%(self.race_class2.name, i) self.r.bump_class = self.race_class2 self.r.event = self.e self.r.club = self.c self.r.save() #make regs with empty runs for each class if pax_class.name!="H": self.result = Result() self.result.reg = self.r self.result.session = self.sess self.result.club = self.c self.result.save() for j in range(0, 3): run = Run() run.base_time = 100.0-i-j run.result = self.result run.club = self.c run.save() race_classes = self.e.calc_results() self.assertEqual(set(["A", "B", "C", "D", "E", "F", "G", "index1", "index2"]), set([rc.name for rc in race_classes])) #make sure the results come back sorted for rc, regs in race_classes.iteritems(): #all race_classes should have 8 regs in the results self.assertEqual(regs, sorted(regs, key=lambda x: x.total_index_time)) if "index" not in rc.name: self.assertEqual(class_point_ladder[:8], [reg.class_points for reg in regs]) self.assertEqual(8, len(regs)) else: self.assertEqual(class_point_ladder[:7], [reg.class_points for reg in regs]) self.assertEqual(7, len(regs)) regs = self.e.get_results() self.assertEqual(regs[0].total_index_time, (91.0)*.88) self.assertEqual(index_point_ladder[:70], [reg.index_points for reg in regs])
class TestMembership(unittest.TestCase): def setUp(self): self.c = Club() self.c.name = "test club" self.c.full_clean() self.c.save() self.user1 = User() self.user1.first_name = "Justin" self.user1.last_name = "Gray" self.user1.username = "******" self.user1.save() self.user2 = User() self.user2.first_name = "Sirius" self.user2.last_name = "Gray" self.user2.username = "******" self.user2.save() m= Membership() m.user_prof = self.user1.get_profile() m.club = self.c m.num = 1 m.start = datetime.date.today() - datetime.timedelta(days=300) m.valid_thru = datetime.date.today()+datetime.timedelta(days=1) m.paid = True m.full_clean() m.save() def tearDown(self): clear_db() def test_is_active_member(self): self.assertTrue(self.c.is_active_member(self.user1)) self.assertFalse(self.c.is_active_member(self.user2)) m= Membership() m.user_prof = self.user2.get_profile() m.club = self.c m.num = 2 m.start = datetime.date.today() - datetime.timedelta(days=300) m.valid_thru = datetime.date.today() m.full_clean() m.save() #make sure expired memberships don't report as active self.assertFalse(self.c.is_active_member(self.user2)) def test_duplicate_id(self): m= Membership() m.user_prof = self.user2.get_profile() m.club = self.c m.num = 1 m.start = datetime.date.today() - datetime.timedelta(days=300) m.valid_thru = datetime.date.today()+datetime.timedelta(days=1) try: m.full_clean() m.save() except ValidationError as err: self.assertEqual(str(err),"{'__all__': [u'A member with that number already exists']}") else: self.fail("ValidationError expected") def test_auto_increment_number(self): m= Membership() m.user_prof = self.user2.get_profile() m.club = self.c m.start = datetime.date.today() - datetime.timedelta(days=300) m.valid_thru = datetime.date.today() m.full_clean() m.save() self.assertEqual(m.num,2) def test_is_member(self): up = self.user1.get_profile() self.assertTrue(up.is_member(self.c))
class TestRegistration(unittest.TestCase): def setUp(self): self.c = Club() self.c.name = "test club" self.c.full_clean() self.c.save() self.season = Season() self.season.club = self.c self.season.year = 2011 self.season.save() self.race_class = RaceClass() self.race_class.name = "CSP" self.race_class.abrv = "CSP" self.race_class.pax = 0.875 self.race_class.club = self.c self.race_class.save() self.e = Event() self.e.name = "test event" self.e.date = datetime.date.today() self.e.season = self.season self.e.club = self.c self.e.save() self.user = User() self.user.first_name = "Justin" self.user.last_name = "Gray" self.user.username = "******" self.user.save() self.user2 = User() self.user2.first_name = "Eli" self.user2.last_name = "Gray" self.user2.username = "******" self.user2.save() self.car = Car() self.car.year = 1990 self.car.make = "Mazda" self.car.model = "Miata" self.car.user_profile = self.user.get_profile() self.car.save() self.r = Registration() self.r.number = 11 self.r.race_class = self.race_class self.r.pax_class = None self.r.club = self.c self.r.event = self.e self.user_profile = UserProfile.objects.get(user=self.user) self.user_profile2 = UserProfile.objects.get(user=self.user2) def tearDown(self): clear_db() def test_default_pax_class(self): pax_class = RaceClass() pax_class.name = "Street Tire" pax_class.abrv = "T" pax_class.pax = 1 pax_class.club = self.c pax_class.pax_class = True pax_class.hidden = True pax_class.save() other_pax_class = RaceClass() other_pax_class.name = "Pro" other_pax_class.abrv = "X" other_pax_class.pax = 1 other_pax_class.club = self.c other_pax_class.pax_class = True other_pax_class.hidden = False other_pax_class.save() race_class = RaceClass() race_class.name = "HS" race_class.abrv = "HS" race_class.pax = 0.5 race_class.club = self.c race_class.default_pax_class = pax_class race_class.save() self.r.race_class = race_class self.r.save() self.assertEqual(self.r.pax_class, pax_class) # set it back to CSP self.r.race_class = self.race_class self.r.save() self.assertEqual(self.r.pax_class, None) # make sure pax_class does not change self.r.pax_class = other_pax_class self.r.save() self.assertEqual(self.r.pax_class, other_pax_class) self.r.race_class = race_class self.r.save() self.assertEqual(self.r.pax_class, other_pax_class) def test_calc_times_empty_results(self): self.r.save() self.r.calc_times() self.assertEqual(self.r.total_raw_time, 0) self.assertEqual(self.r.total_index_time, 0) def test_calc_times(self): self.r.save() sess = Session() sess.name = "AM" sess.event = self.e sess.club = self.c sess.save() res = Result() res.reg = self.r res.session = sess res.club = self.c res.save() r = Run() r.base_time = 10.0 r.result = res r.club = self.c r.save() res = Result() res.reg = self.r res.session = sess res.club = self.c res.save() r = Run() r.base_time = 10.0 r.result = res r.club = self.c r.save() self.r.save() self.r.calc_times() self.assertEqual(self.r.total_raw_time, 20.0) self.assertEqual(self.r.total_index_time, self.r.total_raw_time * self.race_class.pax) def testAnon(self): self.r._anon_f_name = "Justin" self.r._anon_l_name = "Gray" self.r._anon_car = "1990 Mazda Miata" self.r.save() self.assertEqual("Justin", self.r.first_name) self.assertEqual("Gray", self.r.last_name) self.assertEqual("1990 Mazda Miata", self.r.car_name) self.r.associate_with_user(self.user2.username) self.r.save() self.assertEqual("Eli", self.r.first_name) self.assertEqual("Gray", self.r.last_name) self.assertEqual("1990 Mazda Miata", self.r.car_name) def testWithCar(self): self.r.car = self.car self.r.user_profile = self.user_profile self.r.save() self.assertEqual("Justin", self.r.first_name) self.assertEqual("Gray", self.r.last_name) self.assertEqual("1990 Mazda Miata", self.r.car_name) def testAllowedNumberRaceClass(self): self.r.car = self.car self.r.user_profile = self.user_profile self.r.save() self.r2 = Registration() self.r2.number = 11 self.r2.race_class = self.race_class self.r2.pax_class = None self.r2.club = self.c self.r2.event = self.e try: self.r2.full_clean() except ValidationError as err: self.assertEqual("{'__all__': [u'11 CSP is already taken, pick another number.']}", str(err)) else: self.fail("ValidationError expected") # make sure you can save an existing reg self.r2.number = 12 self.r2.save() self.r.number = 12 # self.r.save() try: self.r.full_clean() except ValidationError as err: self.assertEqual("{'__all__': [u'12 CSP is already taken, pick another number.']}", str(err)) else: self.fail("ValidationError expected") self.e2 = Event() self.e2.name = "test event 2" self.e2.date = datetime.date.today() self.e2.season = self.season self.e2.club = self.c self.e2.save() self.r3 = Registration() self.r3.number = 77 self.r3.race_class = self.race_class self.r3.pax_class = None self.r3.event = self.e2 self.r3.club = self.c self.r3.save() self.e.child_events.add(self.e2) self.e.save() self.r2.number = 77 try: self.r2.full_clean() except ValidationError as err: self.assertEqual("{'__all__': [u'77 CSP is already taken, pick another number.']}", str(err)) else: self.fail("ValidationError expected") def testMaxUserRegLimit(self): self.e2 = Event() self.e2.name = "test event 2" self.e2.date = datetime.date.today() self.e2.season = self.season self.e2.club = self.c self.e2.save() self.race_class.user_reg_limit = 1 self.race_class.save() self.r.car = self.car self.r.user_profile = self.user_profile self.r.event = self.e self.r.save() self.r2 = Registration() self.r2.number = 11 self.r2.race_class = self.race_class self.r2.pax_class = None self.r2.event = self.e2 self.r2.club = self.c self.r2.user_profile = self.user_profile try: self.r2.full_clean() except ValidationError as err: self.assertEqual("{'__all__': [u'You have reached the registration limit for CSP.']}", str(err)) else: self.fail("ValidationError expected") def testEventRegLimit(self): self.race_class.event_reg_limit = 1 self.race_class.save() self.r.car = self.car self.r.event = self.e self.r.user_profile = self.user_profile self.r.save() self.r2 = Registration() self.r2.number = 21 self.r2.race_class = self.race_class self.r2.pax_class = None self.r2.club = self.c self.r2.event = self.e try: self.r2.full_clean() except ValidationError as err: self.assertEqual( "{'__all__': [u'Only 1 registrations for CSP are " "allowed for an event. The class is full']}", str(err), ) else: self.fail("ValidationError expected") # test that a user can only register once, regardless of class self.race_class.event_reg_limit = 10 self.race_class.save() self.r2.number = 111 self.r2.race_class = self.race_class self.r2.pax_class = None self.r2.event = self.e self.r2.user_profile = self.user_profile try: self.r2.full_clean() except ValidationError as err: self.assertEqual("{'__all__': [u'You have already registered to run as 11 CSP']}", str(err)) else: self.fail("ValidationError expected") def testCarDeleteFromReg(self): """Check to make sure reg_car gets set to null if a car gets deleted""" self.r.car = self.car self.r.save() self.assertEqual(self.r.car, self.car) self.car.delete() reg = Registration.objects.filter(number=11).get() self.assertIsNone(reg.car) def testMoveToBumpClass(self): bump_class = RaceClass() bump_class.name = "Index" bump_class.pax = 1.0 bump_class.club = self.c bump_class.save() self.r.bump_class = bump_class self.r.save() self.assertEqual(self.r.race_class, self.race_class) self.assertEqual(self.r.bump_class, bump_class) def testMakeAssocRegs(self): e2 = Event() e2.name = "test event 2" e2.date = datetime.date.today() e2.season = self.season e2.club = self.c e2.save() self.e.child_events.add(e2) self.e.save() self.r.make_assoc_regs() regs = Registration.objects.filter(event=e2).all() self.assertEqual(len(regs), 1) def testUpdateAssocRegs(self): e2 = Event() e2.name = "test event 2" e2.date = datetime.date.today() e2.season = self.season e2.club = self.c e2.save() self.e.child_events.add(e2) self.e.save() self.r.make_assoc_regs() self.r.number = 10 self.r.save() self.r.update_assoc_regs() reg = Registration.objects.filter(event=e2).get() self.assertEqual(reg.number, self.r.number)
class TestOrder(unittest.TestCase): def tearDown(self): clear_db() def setUp(self): self.c = Club() self.c.name = "test club" self.c.full_clean() self.c.save() self.season = Season() self.season.club = self.c self.season.year = 2011 self.season.save() self.race_class = RaceClass() self.race_class.name = "CSP" self.race_class.pax = .875 self.race_class.club = self.c self.race_class.save() self.e = Event() self.e.name = "test event" self.e.date = datetime.date.today() self.e.season = self.season self.e.club = self.c self.e.save() self.user = User() self.user.first_name = "justin" self.user.last_name = "gray" self.user.username = "******" self.user.save() self.user2 = User() self.user2.first_name = "sirius" self.user2.last_name = "gray" self.user2.username = "******" self.user2.save() def test_total_price(self): self.o = Order() self.o.user_prof = self.user.get_profile() self.o.save() item1 = Registration() item1.number = 11 item1.race_class = self.race_class item1.pax_class = None item1.event = self.e item1.price = "40.00" item1.order = self.o item1.club = self.c item1.save() item2 = Membership() item2.user_prof = self.user.get_profile() item2.club = self.c item2.num = 1 item2.start = datetime.date.today() - datetime.timedelta(days=300) item2.valid_thru = datetime.date.today()+datetime.timedelta(days=1) item2.price = "60.00" item2.order = self.o item2.save() self.o.calc_total_price() self.assertEqual(self.o.total_price, "100.00") club = Club() club.name ="test-test" club.save() c = Coupon() c.discount_amount = "10.00" c.permanent = True c.code = "aaa" c.expires = datetime.date.today() + datetime.timedelta(days=1) c.club = club c.save() self.o.coupon = c self.o.calc_total_price() self.assertEqual(self.o.total_price, '90.00')
class TestPostForms(ResourceTestCase): def setUp(self): super(TestPostForms, self).setUp() self.c = Club() self.c.name = "test club" self.c.full_clean() self.c.save() self.season = Season() self.season.club = self.c self.season.year = 2011 self.season.save() self.race_class = RaceClass() self.race_class.name = "CSP" self.race_class.abrv = "CSP" self.race_class.pax = .875 self.race_class.club = self.c self.race_class.save() self.e = Event() self.e.name = "test event" self.e.date = datetime.date.today() self.e.season = self.season self.e.club = self.c self.e.save() self.user = User() self.user.first_name = "Justin" self.user.last_name = "Gray" self.user.username = "******" self.user.save() self.c.group.user_set.add(self.user) self.c.save() self.user.set_password("test") self.user.save() self.r = Registration() self.r.number = 11 self.r.race_class = self.race_class self.r.pax_class = None self.r.club = self.c self.r.event = self.e def get_credentials(self): resp = self.api_client.client.login(username='******', password='******') return resp def test_assoc_reg_user(self): self.r.save() data = {"username": "******",} self.get_credentials() resp = self.api_client.client.post('/garage/reg/%s/driver'%self.r.pk, data) self.assertValidJSONResponse(resp) post_data = self.deserialize(resp) resp = self.api_client.get('/garage/api/v1/registration/%d/'%self.r.pk) self.assertValidJSONResponse(resp) get_data = self.deserialize(resp) self.assertEqual(post_data,get_data)