def _create_assignment(self, period, short_name, long_name, first_deadline, publishing_time, delivery_types, anonymous): assignment = Assignment(parentnode=period, short_name=short_name, long_name=long_name, first_deadline=first_deadline, publishing_time=publishing_time, delivery_types=delivery_types, anonymous=anonymous) assignment.full_clean() assignment.save() return assignment
def test_old_where_is_examiner(self): past = datetime.now() - timedelta(10) examiner3 = User.objects.get(username='******') q = Assignment.old_where_is_examiner(examiner3) self.assertEquals(q.count(), 1) self.assertEquals(q[0].short_name, 'oldassignment') # Set as examiner on group1 self.add_to_path('uio.ifi;inf1100.looong.assignment1.group1:examiner(examiner3)') q = Assignment.old_where_is_examiner(examiner3) self.assertEquals(q.count(), 1) # Making the period old and verify that the count has changed self.inf1100_looong.end_time = past self.inf1100_looong.save() self.assertEquals(q.count(), 2)
def test_where_is_examiner(self): examiner3 = User.objects.get(username='******') q = Assignment.where_is_examiner(examiner3) self.assertEquals(q.count(), 1) self.assertEquals(q[0].short_name, 'oldassignment') self.inf1100_looong_assignment3_group1.examiners.create(user=examiner3) self.assertEquals(q.count(), 2)
def test_published_where_is_examiner(self): User.objects.get(username='******') q = Assignment.published_where_is_examiner(self.examiner3, old=False, active=False) self.assertEquals(q.count(), 0) q = Assignment.published_where_is_examiner(self.examiner3) self.assertEquals(q.count(), 1) self.assertEquals(q[0].short_name, 'oldassignment') # Add as examiner, count should increase self.inf1100_looong_assignment1_g1.examiners.create(user=self.examiner3) self.assertEquals(q.count(), 2) # Set publishing_time to future. count should decrease self.inf1100_looong_assignment1.publishing_time = datetime.now() + timedelta(10) self.inf1100_looong_assignment1.save() q = Assignment.published_where_is_examiner(self.examiner3) self.assertEquals(q.count(), 1)
def test_active_where_is_examiner(self): past = datetime.now() - timedelta(10) examiner1 = User.objects.get(username='******') # Get assignments where the period is active q = Assignment.active_where_is_examiner(examiner1).order_by('short_name') self.assertEquals(q.count(), 3) self.assertEquals(q[0].short_name, 'assignment1') self.assertEquals(q[1].short_name, 'assignment2') self.assertEquals(q[2].short_name, 'assignment3') #Create group2 with examiner1 as examiner self.add_to_path('uio.ifi;inf1010.spring10:begins(-1):ends(2).assignment0.group2:examiner(examiner1)') q = Assignment.active_where_is_examiner(examiner1) self.assertEquals(q.count(), 4) self.inf1010_spring10.end_time = past self.inf1010_spring10.save() self.assertEquals(q.count(), 3) self.inf1010_spring10_assignment0.publishing_time = past self.inf1010_spring10_assignment0.save() q = Assignment.active_where_is_examiner(examiner1) self.assertEquals(q.count(), 3)
def read_authorize(cls, user, obj): if not Assignment.published_where_is_examiner(user).filter(id=obj.assignment_id): raise PermissionDenied()
def test_where_is_admin(self): ifiadmin = User.objects.get(username='******') self.assertEquals(Assignment.where_is_admin(ifiadmin).count(), 6)
def read_authorize(cls, user, obj): try: Assignment.objects.get(Assignment.q_is_examiner(user) & Q(id=obj.id)) except Assignment.DoesNotExist: raise PermissionDenied()
def read_authorize(cls, user, obj): if not Assignment.published_where_is_examiner(user).filter( id=obj.assignment_id): raise PermissionDenied()
def get_queryset(self): return Assignment.where_is_admin_or_superadmin(self.request.user)