def setUp(self): self.ev = Event(name='Test Event', event_date=datetime.date.today()) self.ev.save() self.a = {'invitation': 4, 'pfx': 'Mr', 'first': ' mitchell', 'last': 'stoutin ', 'plusOne': 1, 'orderer': 0, 'event': self.ev, 'status':1} self.b = EventGuest(**self.a) self.b.save()
def create(self, validated_data): guests = [EventGuest(**item) for item in validated_data] self.validate_same_invitation(guests) inviteNumber = EventGuest.nextFreeInvitation( guests[0].event if len(guests) > 0 else None) for guest in guests: guest.invitation = inviteNumber return EventGuest.objects.bulk_create(guests)
def test_appropriate_prefixes_receive_dot_on_clean(self): for x in ['mr', 'Mrs', 'Ms', 'Dr', 'mdm']: a = EventGuest(pfx=x, first='FirstName', last='Last Name') a.clean() self.assertEqual(a.pfx[-1], '.') a.pfx = 'Miss' #make sure it doesn't dot everything. a.clean() self.assertNotEqual(a.pfx[-1], '.')
def test_will_update_from_public_fields(self): a = {'invitation': 4, 'pfx': 'Mr', 'first': ' mitchell', 'last': 'stoutin ', 'plusOne': 1, 'orderer': 0} b = EventGuest(event=self.ev, **a) b.save() a['first'] = 'Daylen' a['event'] = self.ev.pk c = GuestPublicSerializer(b, data=a) self.assertTrue(c.is_valid()) c.save() self.assertEqual(b.first, 'Daylen')
def test_nextFreeInvite_incriments(self): ev = Event(name='Test Event', event_date=datetime.date.today()) ev.save() defaults = {'event': ev, 'first': 'FirstName', 'last': 'Last Name'} latest = 0 for x in range(10): guest = EventGuest(invitation=EventGuest.nextFreeInvitation(ev), **defaults) guest.save() self.assertTrue(guest.invitation > latest) latest = guest.invitation
def test_cleaner_handles_nonetype(self): a = EventGuest(pfx=None, first='mitchell ') a.clean() self.assertEqual(a.pfx, None)
def test_names_and_pfxs_stripped_on_clean(self): a = EventGuest(pfx='mr. ', first='mitchell ', last=' stoutin') a.clean() self.assertEqual(a.pfx, 'mr.') self.assertEqual(a.first, 'mitchell') self.assertEqual(a.last, 'stoutin')