def test_new_attendance(self): office = LocationFactory(name="Office", setup_only=False, available_for_meetings=True) # User should not have permission to create meetings by default self.assertOk(self.client.get(reverse("meetings:new")), 403) permission = Permission.objects.get(codename="create_mtg") self.user.user_permissions.add(permission) # Will need view_mtg permission on redirect as well permission = Permission.objects.get(codename="view_mtg_attendance") self.user.user_permissions.add(permission) self.assertOk(self.client.get(reverse("meetings:new"))) valid_data = { "meeting_type": str(self.meeting_type1.pk), "location": str(office.pk), "datetime_0": timezone.now().date(), "datetime_1": timezone.now().time(), "attendance": [str(self.user.pk)], "duration": "1 hour", "agenda": "", "minutes": "", "minutes_private": "", "attachments": "", "attachments_private": "", "save": "Save Changes" } self.assertRedirects(self.client.post(reverse("meetings:new"), valid_data), reverse("meetings:detail", args=[3]))
def setup(self): self.location = LocationFactory.create(name="Test Location", show_in_wo_form=True) self.org = OrgFactory.create(name="Test Org", shortname="Test", exec_email="*****@*****.**", phone="1234567890")
def test_edit_attendance(self): office = LocationFactory(name="Office", setup_only=False, available_for_meetings=True) # By default, should not have permission to edit attendance self.assertOk(self.client.get(reverse("meetings:edit", args=[self.meeting.pk])), 403) permission = Permission.objects.get(codename="edit_mtg") self.user.user_permissions.add(permission) # Will need view_mtg permission on redirect as well permission = Permission.objects.get(codename="view_mtg_attendance") self.user.user_permissions.add(permission) self.assertOk(self.client.get(reverse("meetings:edit", args=[self.meeting.pk]))) path = models.mtg_attachment_file_name(self, "TotallyAFile.png") f = SimpleUploadedFile(path, b"some content") valid_data = { "meeting_type": str(self.meeting_type1.pk), "location": str(office.pk), "datetime_0": timezone.now().date(), "datetime_1": timezone.now().time(), "attendance": [str(self.user.pk)], "duration": "1 hour", "agenda": "", "minutes": "", "minutes_private": "", "attachments": f, "attachments_private": "", "save": "Save Changes" } self.assertRedirects(self.client.post(reverse("meetings:edit", args=[self.meeting.pk]), valid_data), reverse("meetings:detail", args=[self.meeting.pk]) + "#attendance")
def test_update_event(self): e = EventFactory.create(event_name="Test Event") lighting = eventmodels.Category.objects.create(name="Lighting") l1 = eventmodels.Lighting.objects.create(shortname="L1", longname="Lighting", base_cost=100.00, addtl_cost=10.00, category=lighting) office = LocationFactory(name="Office", setup_only=True) e.lighting = l1 e.save() # By default, should not have permission to update the event self.assertOk( self.client.get( reverse("meetings:addchief", args=[self.meeting.pk, e.pk])), 403) permission = Permission.objects.get(codename="edit_mtg") self.user.user_permissions.add(permission) # Will also need view_mtg permissions for redirect permission = Permission.objects.get(codename="view_mtg_attendance") self.user.user_permissions.add(permission) self.assertOk( self.client.get( reverse("meetings:addchief", args=[self.meeting.pk, e.pk]))) valid_data = { "main-TOTAL_FORMS": 1, "main-INITIAL_FORMS": 0, "main-MIN_NUM_FORMS": 0, "main-MAX_NUM_FORMS": 1000, "main-0-crew_chief": str(self.user.pk), "main-0-service": str(l1.pk), "main-0-category": "", "main-0-setup_location": str(office.pk), "main-0-setup_start_0": timezone.now().date(), "main-0-setup_start_1": timezone.now().time() } self.assertRedirects( self.client.post( reverse("meetings:addchief", args=[self.meeting.pk, e.pk]), valid_data), reverse("meetings:detail", args=[self.meeting.pk]) + "#events")
def test_log_access(self): location = LocationFactory(name="CC Office", holds_equipment=True) # Check that we get 404 if location matching query cannot be found self.assertOk( self.client.get(reverse("inventory:log_access", args=['Alden-Sub'])), 404) # Check that everything loads ok when there's a match self.assertOk( self.client.get(reverse("inventory:log_access", args=['CC-Office']))) # Verify that the checkin form redirects home once submitted successfully valid_data = { "users": [str(self.user.pk)], "location": str(location.pk), "reason": "To play with the Bose Cannon", "save": "Submit" } self.assertRedirects( self.client.post( reverse("inventory:log_access", args=['CC-Office']), valid_data), reverse("home")) # Test the checkout process (checking out is optional) valid_data = { "users": [str(self.user.pk)], "location": str(location.pk), "reason": "OUT", "save": "Submit" } self.assertRedirects( self.client.post(reverse("inventory:log_exit", args=['cc']), valid_data), reverse("home"))