def setUp(self): """Create some Venues and ScheduleBlocks for use in the actual tests.""" timezone.activate('UTC') self.block = ScheduleBlock.objects.create( start_time=D.datetime(2013, 9, 22, 9, 0, 0, tzinfo=timezone.utc), end_time=D.datetime(2013, 9, 22, 23, 0, 0, tzinfo=timezone.utc)) self.admin = SlotAdmin(Slot, None)
def setUp(self): """Create some data for use in the actual tests.""" self.day1 = Day.objects.create(date=D.date(2013, 9, 22)) self.day2 = Day.objects.create(date=D.date(2013, 9, 23)) self.day3 = Day.objects.create(date=D.date(2013, 9, 24)) self.admin = SlotAdmin(Slot, None)
def setUp(self): """Create some data for use in the actual tests.""" self.block1 = ScheduleBlock.objects.create( start_time=D.datetime(2013, 9, 22, 9, 0, 0, tzinfo=timezone.utc), end_time=D.datetime(2013, 9, 22, 19, 0, 0, tzinfo=timezone.utc)) self.block2 = ScheduleBlock.objects.create( start_time=D.datetime(2013, 9, 23, 9, 0, 0, tzinfo=timezone.utc), end_time=D.datetime(2013, 9, 23, 19, 0, 0, tzinfo=timezone.utc)) self.block3 = ScheduleBlock.objects.create( start_time=D.datetime(2013, 9, 24, 9, 0, 0, tzinfo=timezone.utc), end_time=D.datetime(2013, 9, 24, 19, 0, 0, tzinfo=timezone.utc)) self.admin = SlotAdmin(Slot, None)
def setUp(self): """Create some Venues and Days for use in the actual tests.""" self.day = Day.objects.create(date=D.date(2013, 9, 22)) self.admin = SlotAdmin(Slot, None)
class SlotAdminTests(TestCase): def setUp(self): """Create some Venues and Days for use in the actual tests.""" self.day = Day.objects.create(date=D.date(2013, 9, 22)) self.admin = SlotAdmin(Slot, None) def test_save_model_single_new(self): """Test save_model creating a new slot, but no additional slots""" slot = Slot(day=self.day, start_time=D.time(11, 0, 0), end_time=D.time(11, 30, 0)) # check that it's not saved in the database yet self.assertEqual(Slot.objects.count(), 0) request = HttpRequest() dummy = make_dummy_form(0) self.admin.save_model(request, slot, dummy, False) # check that it's now been saved in the database self.assertEqual(Slot.objects.count(), 1) slot2 = Slot.objects.filter(start_time=D.time(11, 0, 0)).get() self.assertEqual(slot, slot2) def test_save_model_change_slot(self): """Test save_model changing a slot""" slot = Slot(day=self.day, start_time=D.time(11, 0, 0), end_time=D.time(12, 30, 0)) # end_time is chosen as 12:30 so it stays valid through all the # subsequent fiddling slot.save() # check that it's saved in the database self.assertEqual(Slot.objects.count(), 1) request = HttpRequest() dummy = make_dummy_form(0) slot.start_time = D.time(12, 0, 0) self.assertEqual( Slot.objects.filter(start_time=D.time(11, 0, 0)).count(), 1) self.admin.save_model(request, slot, dummy, True) # Check that the database has changed self.assertEqual( Slot.objects.filter(start_time=D.time(11, 0, 0)).count(), 0) self.assertEqual(Slot.objects.count(), 1) slot2 = Slot.objects.filter(start_time=D.time(12, 0, 0)).get() self.assertEqual(slot, slot2) # Check that setting additional has no influence on the change path dummy = make_dummy_form(3) slot.start_time = D.time(11, 0, 0) self.assertEqual( Slot.objects.filter(start_time=D.time(11, 0, 0)).count(), 0) self.admin.save_model(request, slot, dummy, True) # Still only 1 object self.assertEqual(Slot.objects.count(), 1) # And it has been updated self.assertEqual( Slot.objects.filter(start_time=D.time(12, 0, 0)).count(), 0) self.assertEqual( Slot.objects.filter(start_time=D.time(11, 0, 0)).count(), 1) def test_save_model_new_additional(self): """Test save_model changing a new slot with some additional slots""" slot = Slot(day=self.day, start_time=D.time(11, 0, 0), end_time=D.time(11, 30, 0)) # check that it's not saved in the database self.assertEqual(Slot.objects.count(), 0) request = HttpRequest() dummy = make_dummy_form(3) self.admin.save_model(request, slot, dummy, False) self.assertEqual(Slot.objects.count(), 4) # check the hierachy is created correctly slot1 = Slot.objects.filter(previous_slot=slot).get() self.assertEqual(slot1.get_start_time(), slot.end_time) self.assertEqual(slot1.end_time, D.time(12, 0, 0)) slot2 = Slot.objects.filter(previous_slot=slot1).get() self.assertEqual(slot2.get_start_time(), slot1.end_time) self.assertEqual(slot2.end_time, D.time(12, 30, 0)) self.assertEqual(slot2.day, slot.day) slot3 = Slot.objects.filter(previous_slot=slot2).get() self.assertEqual(slot3.get_start_time(), slot2.end_time) self.assertEqual(slot3.end_time, D.time(13, 00, 0)) self.assertEqual(slot3.day, slot.day) # repeat checks with a different length of slot slot = Slot(day=self.day, previous_slot=slot3, end_time=D.time(14, 30, 0)) dummy = make_dummy_form(4) self.admin.save_model(request, slot, dummy, False) self.assertEqual(Slot.objects.count(), 9) slot1 = Slot.objects.filter(previous_slot=slot).get() self.assertEqual(slot1.get_start_time(), slot.end_time) self.assertEqual(slot1.end_time, D.time(16, 0, 0)) slot2 = Slot.objects.filter(previous_slot=slot1).get() self.assertEqual(slot2.get_start_time(), slot1.end_time) self.assertEqual(slot2.end_time, D.time(17, 30, 0)) self.assertEqual(slot2.day, slot.day) slot3 = Slot.objects.filter(previous_slot=slot2).get() self.assertEqual(slot3.get_start_time(), slot2.end_time) self.assertEqual(slot3.end_time, D.time(19, 00, 0)) self.assertEqual(slot3.day, slot.day) slot4 = Slot.objects.filter(previous_slot=slot3).get() self.assertEqual(slot4.get_start_time(), slot3.end_time) self.assertEqual(slot4.end_time, D.time(20, 30, 0)) self.assertEqual(slot4.day, slot.day) def test_save_model_prev_slot_additional(self): """Test save_model changing a new slot with some additional slots, starting from a slot specified via previous slot""" prev_slot = Slot(day=self.day, start_time=D.time(11, 0, 0), end_time=D.time(11, 30, 0)) prev_slot.save() self.assertEqual(Slot.objects.count(), 1) slot = Slot(previous_slot=prev_slot, end_time=D.time(12, 00, 0)) # Check that newly added slot isn't in the database self.assertEqual(Slot.objects.count(), 1) request = HttpRequest() dummy = make_dummy_form(2) self.admin.save_model(request, slot, dummy, False) self.assertEqual(Slot.objects.count(), 4) # check the hierachy is created correctly slot1 = Slot.objects.filter(previous_slot=slot).get() self.assertEqual(slot1.get_start_time(), slot.end_time) self.assertEqual(slot1.end_time, D.time(12, 30, 0)) slot2 = Slot.objects.filter(previous_slot=slot1).get() self.assertEqual(slot2.get_start_time(), slot1.end_time) self.assertEqual(slot2.end_time, D.time(13, 00, 0))
class SlotAdminTests(TestCase): def setUp(self): """Create some Venues and Days for use in the actual tests.""" self.day = Day.objects.create(date=D.date(2013, 9, 22)) self.admin = SlotAdmin(Slot, None) def test_save_model_single_new(self): """Test save_model creating a new slot, but no additional slots""" slot = Slot(day=self.day, start_time=D.time(11, 0, 0), end_time=D.time(11, 30, 0)) # check that it's not saved in the database yet self.assertEqual(Slot.objects.count(), 0) request = HttpRequest() dummy = make_dummy_form(0) self.admin.save_model(request, slot, dummy, False) # check that it's now been saved in the database self.assertEqual(Slot.objects.count(), 1) slot2 = Slot.objects.filter(start_time=D.time(11, 0, 0)).get() self.assertEqual(slot, slot2) def test_save_model_change_slot(self): """Test save_model changing a slot""" slot = Slot(day=self.day, start_time=D.time(11, 0, 0), end_time=D.time(12, 30, 0)) # end_time is chosen as 12:30 so it stays valid through all the # subsequent fiddling slot.save() # check that it's saved in the database self.assertEqual(Slot.objects.count(), 1) request = HttpRequest() dummy = make_dummy_form(0) slot.start_time = D.time(12, 0, 0) self.assertEqual(Slot.objects.filter(start_time=D.time(11, 0, 0)).count(), 1) self.admin.save_model(request, slot, dummy, True) # Check that the database has changed self.assertEqual(Slot.objects.filter(start_time=D.time(11, 0, 0)).count(), 0) self.assertEqual(Slot.objects.count(), 1) slot2 = Slot.objects.filter(start_time=D.time(12, 0, 0)).get() self.assertEqual(slot, slot2) # Check that setting additional has no influence on the change path dummy = make_dummy_form(3) slot.start_time = D.time(11, 0, 0) self.assertEqual(Slot.objects.filter(start_time=D.time(11, 0, 0)).count(), 0) self.admin.save_model(request, slot, dummy, True) # Still only 1 object self.assertEqual(Slot.objects.count(), 1) # And it has been updated self.assertEqual(Slot.objects.filter(start_time=D.time(12, 0, 0)).count(), 0) self.assertEqual(Slot.objects.filter(start_time=D.time(11, 0, 0)).count(), 1) def test_save_model_new_additional(self): """Test save_model changing a new slot with some additional slots""" slot = Slot(day=self.day, start_time=D.time(11, 0, 0), end_time=D.time(11, 30, 0)) # check that it's not saved in the database self.assertEqual(Slot.objects.count(), 0) request = HttpRequest() dummy = make_dummy_form(3) self.admin.save_model(request, slot, dummy, False) self.assertEqual(Slot.objects.count(), 4) # check the hierachy is created correctly slot1 = Slot.objects.filter(previous_slot=slot).get() self.assertEqual(slot1.get_start_time(), slot.end_time) self.assertEqual(slot1.end_time, D.time(12, 0, 0)) slot2 = Slot.objects.filter(previous_slot=slot1).get() self.assertEqual(slot2.get_start_time(), slot1.end_time) self.assertEqual(slot2.end_time, D.time(12, 30, 0)) self.assertEqual(slot2.day, slot.day) slot3 = Slot.objects.filter(previous_slot=slot2).get() self.assertEqual(slot3.get_start_time(), slot2.end_time) self.assertEqual(slot3.end_time, D.time(13, 00, 0)) self.assertEqual(slot3.day, slot.day) # repeat checks with a different length of slot slot = Slot(day=self.day, previous_slot=slot3, end_time=D.time(14, 30, 0)) dummy = make_dummy_form(4) self.admin.save_model(request, slot, dummy, False) self.assertEqual(Slot.objects.count(), 9) slot1 = Slot.objects.filter(previous_slot=slot).get() self.assertEqual(slot1.get_start_time(), slot.end_time) self.assertEqual(slot1.end_time, D.time(16, 0, 0)) slot2 = Slot.objects.filter(previous_slot=slot1).get() self.assertEqual(slot2.get_start_time(), slot1.end_time) self.assertEqual(slot2.end_time, D.time(17, 30, 0)) self.assertEqual(slot2.day, slot.day) slot3 = Slot.objects.filter(previous_slot=slot2).get() self.assertEqual(slot3.get_start_time(), slot2.end_time) self.assertEqual(slot3.end_time, D.time(19, 00, 0)) self.assertEqual(slot3.day, slot.day) slot4 = Slot.objects.filter(previous_slot=slot3).get() self.assertEqual(slot4.get_start_time(), slot3.end_time) self.assertEqual(slot4.end_time, D.time(20, 30, 0)) self.assertEqual(slot4.day, slot.day)