def test_get_subjectadmin_no_access(self): # Subjectadmin does not have access to view when the user is not subjectadmin for that perdiod subject1 = mommy.make('core.Subject') subject2 = mommy.make('core.Subject') admin = mommy.make(settings.AUTH_USER_MODEL) permissiongroup = mommy.make('devilry_account.SubjectPermissionGroup', permissiongroup__grouptype=account_models. PermissionGroup.GROUPTYPE_SUBJECTADMIN, subject=subject2) mommy.make('devilry_account.PermissionGroupUser', user=admin, permissiongroup=permissiongroup.permissiongroup) testgroup = mommy.make('core.AssignmentGroup', parentnode__parentnode__parentnode=subject1) mockrequest = mock.MagicMock() mockrequest.user = admin mockrequest.cradmin_role = testgroup crinstance = crinstance_admin.AdminCrInstance(request=mockrequest) with self.assertRaises(Http404): self.mock_getrequest(cradmin_role=testgroup, cradmin_instance=crinstance) self.assertEquals(1, group_models.FeedbackSet.objects.count())
def test_getrolequeryset_not_admin_on_subject(self): testassignment_another = mommy.make('core.Assignment') testgroup_another = mommy.make('core.AssignmentGroup', parentnode=testassignment_another) subjectpermissiongroup_another = mommy.make( 'devilry_account.SubjectPermissionGroup', subject=testassignment_another.subject) testuser_another = mommy.make(settings.AUTH_USER_MODEL) mommy.make( 'devilry_account.PermissionGroupUser', user=testuser_another, permissiongroup=subjectpermissiongroup_another.permissiongroup) testassignment = mommy.make('core.Assignment') mommy.make('core.AssignmentGroup', parentnode=testassignment) subjectpermissiongroup = mommy.make( 'devilry_account.SubjectPermissionGroup', subject=testassignment.subject) testuser = mommy.make(settings.AUTH_USER_MODEL) mommy.make('devilry_account.PermissionGroupUser', user=testuser, permissiongroup=subjectpermissiongroup.permissiongroup) mockrequest = mock.MagicMock() mockrequest.user = testuser instance = crinstance_admin.AdminCrInstance(request=mockrequest) self.assertNotEquals([testgroup_another], list(instance.get_rolequeryset()))
def test_get_rolequeryset_not_superuser(self): mommy.make('core.AssignmentGroup', parentnode=mommy.make('core.Assignment')) testuser = mommy.make(settings.AUTH_USER_MODEL) mockrequest = mock.MagicMock() mockrequest.user = testuser instance = crinstance_admin.AdminCrInstance(request=mockrequest) self.assertEqual([], list(instance.get_rolequeryset()))
def test_getrolequeryset_admin_on_period(self): testassignment = mommy.make('core.Assignment') testgroup = mommy.make('core.AssignmentGroup', parentnode=testassignment) periodpermissiongroup = mommy.make( 'devilry_account.PeriodPermissionGroup', period=testassignment.period) testuser = mommy.make(settings.AUTH_USER_MODEL) mommy.make('devilry_account.PermissionGroupUser', user=testuser, permissiongroup=periodpermissiongroup.permissiongroup) mockrequest = mock.MagicMock() mockrequest.user = testuser instance = crinstance_admin.AdminCrInstance(request=mockrequest) self.assertEquals([testgroup], list(instance.get_rolequeryset()))
def test_admin_devilryrole_subjectadmin(self): testsubject = mommy.make('core.Subject') testgroup = mommy.make('core.AssignmentGroup', parentnode__parentnode__parentnode=testsubject) testuser = mommy.make(settings.AUTH_USER_MODEL, shortname='thor', fullname='Thor Thunder God') mommy.make('devilry_account.PermissionGroupUser', user=testuser, permissiongroup=mommy.make( 'devilry_account.SubjectPermissionGroup', permissiongroup__grouptype=account_models. PermissionGroup.GROUPTYPE_SUBJECTADMIN, subject=testsubject).permissiongroup) mockrequest = mock.MagicMock() mockrequest.user = testuser mockrequest.cradmin_role = testgroup testinstance = crinstance_admin.AdminCrInstance(request=mockrequest) self.assertEquals('subjectadmin', testinstance.get_devilryrole_for_requestuser())