def test_anonymous_user(self): '''It should reject the request from an anonymous user.''' models.new_user(username='******') models.new_user(username='******') response = self.get_response() self.assertNotAuthenticated(response)
def setUp(self): self.user = models.new_user(username='******', password='******') self.user2 = models.new_user(username='******', password='******') self.school = models.new_school(user=self.user) self.school2 = models.new_school(user=self.user2) self.assignment1 = models.new_assignment(school=self.school) self.assignment2 = models.new_assignment(school=self.school) self.assignment3 = models.new_assignment(school=self.school2) self.new_assignment = models.new_assignment(school=self.school) self.faulty_assignment = models.new_assignment() self.delegate1 = models.new_delegate(name="Nathaniel Parke", school=self.school, assignment=self.assignment1) self.delegate2 = models.new_delegate(name='Trevor Dowds', school=self.school, assignment=self.assignment2) self.delegate3 = models.new_delegate(name='Kunal Mehta', school=self.school2, assignment=self.assignment3) self.params = [{ 'id': self.delegate1.id, 'assignment': self.new_assignment.id }, { 'id': self.delegate2.id, 'assignment': None }]
def test_self(self): '''Authenticated users shouldn't be able to create countries.''' models.new_user(username='******', password='******') self.client.login(username='******', password='******') response = self.get_response(self.params) self.assertMethodNotAllowed(response, 'POST')
def test_authenticated_user(self): '''Authenticated users shouldn't be able to update committees.''' models.new_user(username='******', password='******') self.client.login(username='******', password='******') response = self.get_response(self.committee.id, params=self.params) self.assertMethodNotAllowed(response, 'PATCH')
def setUp(self): self.advisor = models.new_user(username='******', password='******') self.chair = models.new_user( username='******', password='******', user_type=User.TYPE_CHAIR) self.delegate_user = models.new_user( username='******', password='******', user_type=User.TYPE_DELEGATE) self.delegate_user_2 = models.new_user( username='******', password='******', user_type=User.TYPE_DELEGATE) self.school = models.new_school(user=self.advisor) self.registration = models.new_registration(school=self.school) self.rubric = models.new_rubric() self.committee = models.new_committee( user=self.chair, rubric=self.rubric) self.paper = models.new_position_paper() self.assignment = models.new_assignment( registration=self.registration, committee=self.committee, paper=self.paper) self.delegate = models.new_delegate( user=self.delegate_user, assignment=self.assignment, school=self.school)
def setUp(self): self.user = models.new_user(username='******', password='******') self.user2 = models.new_user(username='******', password='******') self.school = models.new_school(user=self.user) self.school2 = models.new_school(user=self.user2) self.assignment1 = models.new_assignment(school=self.school) self.assignment2 = models.new_assignment(school=self.school) self.assignment3 = models.new_assignment(school=self.school2) self.new_assignment = models.new_assignment(school=self.school) self.faulty_assignment = models.new_assignment() self.delegate1 = models.new_delegate( name="Nathaniel Parke", school=self.school, assignment=self.assignment1 ) self.delegate2 = models.new_delegate( name='Trevor Dowds', school=self.school, assignment=self.assignment2 ) self.delegate3 = models.new_delegate( name='Kunal Mehta', school=self.school2, assignment=self.assignment3 ) self.params = [ {'id': self.delegate1.id, 'assignment': self.new_assignment.id}, {'id': self.delegate2.id, 'assignment': None} ]
def test_user(self): '''It should reject the request from a regular user.''' models.new_user(username='******', password='******') models.new_user(username='******') self.client.login(username='******', password='******') response = self.get_response() self.assertPermissionDenied(response)
def setUp(self): self.user = models.new_user(username='******', password='******') self.school = models.new_school(user=self.user) self.user2 = models.new_user(username='******', password='******') self.school2 = models.new_school(user=self.user2) self.assignment = models.new_assignment(school=self.school) self.params['assignment'] = self.assignment.id self.params['school'] = self.school.id
def test_delegate(self): delegate_1 = models.new_user(user_type=User.TYPE_DELEGATE) self.as_user(delegate_1).do_test( expected_error=auto.EXP_PERMISSION_DENIED) delegate_2 = models.new_user( user_type=User.TYPE_DELEGATE, delegate=self.object) self.as_user(delegate_2).do_test()
def test_other_user(self): '''It should reject request from another user.''' user1 = models.new_user(username='******') user2 = models.new_user(username='******', password='******') self.client.login(username='******', password='******') response = self.get_response(user1.id) self.assertPermissionDenied(response)
def test_other_user(self): '''Should not allow another user to change a school's data''' models.new_user(username='******', password='******') self.client.login(username='******', password='******') response = self.get_response(self.school.id, params=self.params) updated_school = School.objects.get(id=self.school.id) self.assertPermissionDenied(response) self.assertEqual(updated_school.name, self.school.name) self.assertEqual(updated_school.city, self.school.city)
def test_other_user(self): '''Another user should not be able to change information about any other user.''' models.new_user(username='******', password='******') self.client.login(username='******', password='******') response = self.get_response(self.user.id, params=self.params) self.assertPermissionDenied(response) user = User.objects.get(id=self.user.id) self.assertEqual(user.first_name, 'Test') self.assertEqual(user.last_name, 'User')
def test_reset_password(self): '''It should correctly reset a user's password or raise an error.''' password = '******' user = models.new_user(username='******', password=password) self.assertTrue(user.check_password(password)) User.reset_password('lololol') user = User.objects.get(id=user.id) self.assertFalse(user.check_password(password)) with self.assertRaises(User.DoesNotExist): models.new_user(username='', email='') User.reset_password('')
def setUp(self): self.advisor = models.new_user(username='******', password='******') self.school = models.new_school(user=self.advisor) self.registration = models.new_registration(school=self.school) self.assignment = models.new_assignment(registration=self.registration) self.delegate = models.new_delegate( school=self.school, assignment=self.assignment) self.delegate.assignment = None self.delegate.save() self.superuser = models.new_user(is_superuser=True) self.params = {'email': '*****@*****.**'} self.assign_params = {'assignment': self.assignment.id} self.unassign_params = {'assignment': None}
def setUp(self): self.advisor = models.new_user(username='******', password='******') self.school = models.new_school(user=self.advisor) self.registration = models.new_registration(school=self.school) self.assignment = models.new_assignment(registration=self.registration) self.delegate = models.new_delegate( school=self.school, assignment=self.assignment) self.delegate.assignment = None self.delegate.save() self.superuser = models.new_user(is_superuser=True) self.delegate_user = models.new_user( username='******', delegate=self.delegate, user_type=User.TYPE_DELEGATE)
def setUp(self): self.advisor = models.new_user(username='******', password='******') self.chair = models.new_user( username='******', password='******', user_type=User.TYPE_CHAIR) self.school = models.new_school(user=self.advisor) self.registration = models.new_registration(school=self.school) self.committee = models.new_committee(user=self.chair) self.country = models.new_country() self.delegate_user = models.new_user( username='******', password='******', user_type=User.TYPE_DELEGATE) self.params['committee'] = self.committee.id self.params['registration'] = self.registration.id self.params['country'] = self.country.id
def test_preference_export(self): '''Test that the admin panel can properly export school preferences.''' models.new_user(username='******', password='******') models.new_superuser(username='******', password='******') self.client.login(username='******', password='******') school = models.new_school() self.client.logout() self.client.login(username='******', password='******') response = self.client.get(reverse('admin:core_school_preferences')) self.assertTrue(response) header = [ "Name", "Assignments Requested", "Beginners", "Intermediates", "Advanced", "Spanish Speakers", "Chinese Speakers", "Country 1", "Country 2", "Country 3", "Country 4", "Country 5", "Country 6", "Country 7", "Country 8", "Country 9", "Country 10", "Committee Preferences", "Registration Comments" ] fields_csv = ",".join(map(str, header)) + "\r\n" countryprefs = [ c for c in school.countrypreferences.all().order_by( 'countrypreference') ] countryprefs += [''] * (10 - len(countryprefs)) committeeprefs = [ ', '.join([c.name for c in school.committeepreferences.all()]) ] fields = [ school.name, school.beginner_delegates + school.intermediate_delegates + school.advanced_delegates, school.beginner_delegates, school.intermediate_delegates, school.advanced_delegates, school.spanish_speaking_delegates, school.chinese_speaking_delegates, ] fields.extend(countryprefs) fields.extend(committeeprefs) fields.append(school.registration_comments) fields_csv += ",".join(map(str, fields)) self.assertEquals(fields_csv, response.content[:-2])
def setUp(self): self.advisor = models.new_user(username='******', password='******') self.advisor2 = models.new_user( username='******', password='******') self.chair = models.new_user( username='******', password='******', user_type=User.TYPE_CHAIR) self.delegate_user = models.new_user( username='******', password='******', user_type=User.TYPE_DELEGATE) self.school = models.new_school(user=self.advisor) self.school2 = models.new_school(user=self.advisor2) self.registration = models.new_registration(school=self.school) self.registration2 = models.new_registration(school=self.school2) self.committee = models.new_committee(user=self.chair) self.assignment1 = models.new_assignment( registration=self.registration, committee=self.committee) self.assignment2 = models.new_assignment( registration=self.registration) self.assignment3 = models.new_assignment( registration=self.registration2, committee=self.committee) self.new_assignment = models.new_assignment( registration=self.registration) self.new_assignment2 = models.new_assignment( registration=self.registration2) self.faulty_assignment = models.new_assignment() self.delegate1 = models.new_delegate( name="Nathaniel Parke", school=self.school, assignment=self.assignment1) self.delegate2 = models.new_delegate( name='Trevor Dowds', school=self.school, assignment=self.assignment2) self.delegate3 = models.new_delegate( name='Kunal Mehta', school=self.school2, assignment=self.assignment3) self.params = [ {'id': self.delegate1.id, 'assignment': self.new_assignment.id}, {'id': self.delegate2.id, 'assignment': None} ]
def test_other_user(self): '''A user should not be able to partially update another user's info.''' other_user = models.new_user(username='******', password='******') school = models.new_school(user=other_user) self.client.login(username='******', password='******') response = self.get_response(self.registration.id, self.params) self.assertPermissionDenied(response)
def setUp(self): self.advisor = models.new_user(username='******', password='******') self.chair = models.new_user( username='******', password='******', user_type=User.TYPE_CHAIR) self.delegate_user = models.new_user( username='******', password='******', user_type=User.TYPE_DELEGATE) self.school = models.new_school(user=self.advisor) self.registration = models.new_registration(school=self.school) self.committee = models.new_committee(user=self.chair) self.a1 = models.new_assignment( registration=self.registration, committee=self.committee) self.a2 = models.new_assignment( registration=self.registration, committee=self.committee) self.a3 = models.new_assignment()
def test_superuser(self): '''It should allow a superuser to list all users.''' user1 = models.new_superuser(username='******', password='******') user2 = models.new_user(username='******') self.client.login(username='******', password='******') response = self.get_response() self.assertEqual(response.data, [ {'id': user1.id, 'username': user1.username, 'first_name': user1.first_name, 'last_name': user1.last_name, 'user_type': user1.user_type, 'school': user1.school_id, 'committee': user1.committee_id, 'delegate': user1.delegate_id}, {'id': user2.id, 'username': user2.username, 'first_name': user2.first_name, 'last_name': user2.last_name, 'user_type': user2.user_type, 'school': user2.school_id, 'committee': user2.committee_id, 'delegate': user2.delegate_id}, ])
def setUp(self): self.user = models.new_user(username='******', password='******') self.school = models.new_school(user=self.user) self.assignment = models.new_assignment(school=self.school) self.delegate = models.new_delegate(assignment=self.assignment, school=self.school) self.params['assignment'] = self.assignment.id
def test_delegate(self): '''Delegate can create feedback only once for the committee they are in''' self.user = models.new_user(username='******', password='******', user_type=User.TYPE_DELEGATE, delegate=self.delegate, assignment=self.assignment) self.client.login(username='******', password='******') self.assertFalse(self.user.delegate.committee_feedback_submitted) self.params_fail = { 'comment': "Fail Test", 'committee': self.committee_2.id } response_0 = self.get_response(params=self.params_fail) self.assertPermissionDenied(response_0) response_1 = self.get_response(params=self.params) response_1.data.pop('id') self.assertEqual(response_1.data, { "committee": self.committee_1.id, "comment": self.params['comment'], }) self.user.delegate.refresh_from_db() self.assertTrue(self.user.delegate.committee_feedback_submitted) response_2 = self.get_response(params=self.params) self.assertPermissionDenied(response_2)
def setUp(self): self.user = models.new_user(username='******', password='******') self.school = models.new_school(user=self.user) self.committee = models.new_committee() self.country = models.new_country() self.params['committee'] = self.committee.id self.params['school'] = self.school.id self.params['country'] = self.country.id
def test_preference_export(self): '''Test that the admin panel can properly export school preferences.''' models.new_user(username='******', password='******') models.new_superuser(username='******', password='******') self.client.login(username='******', password='******') school = models.new_school() self.client.logout() self.client.login(username='******', password='******') response = self.client.get(reverse('admin:core_school_preferences')) self.assertTrue(response) header = [ "Name", "Assignments Requested", "Beginners", "Intermediates", "Advanced", "Spanish Speakers", "Chinese Speakers", "Country 1", "Country 2", "Country 3", "Country 4", "Country 5", "Country 6", "Country 7", "Country 8", "Country 9", "Country 10", "Committee Preferences", "Registration Comments" ] fields_csv = ",".join(map(str, header)) + "\r\n" countryprefs = [c for c in school.countrypreferences.all().order_by( 'countrypreference')] countryprefs += [''] * (10 - len(countryprefs)) committeeprefs = [', '.join( [c.name for c in school.committeepreferences.all()])] fields = [ school.name, school.beginner_delegates + school.intermediate_delegates + school.advanced_delegates, school.beginner_delegates, school.intermediate_delegates, school.advanced_delegates, school.spanish_speaking_delegates, school.chinese_speaking_delegates, ] fields.extend(countryprefs) fields.extend(committeeprefs) fields.append(school.registration_comments) fields_csv += ",".join(map(str, fields)) self.assertEquals(fields_csv, response.content[:-2])
def test_other_user(self): '''It rejects a request from another user.''' user2 = models.new_user(username='******', password='******') models.new_school(user=user2) self.client.login(username='******', password='******') response = self.get_response(params={'school_id': self.school.id}) self.assertPermissionDenied(response)
def test_logout(self): user = models.new_user(username='******', password='******') self.client.login(username='******', password='******') self.assertEqual(int(self.client.session['_auth_user_id']), user.id) response = self.client.delete(self.url) self.assertEqual(response.status_code, 204) self.assertTrue('_auth_user_id' not in self.client.session)
def test_logout(self): user = models.new_user(username='******', password='******') self.client.login(username='******', password='******') self.assertEqual(int(self.client.session['_auth_user_id']), user.id) response = self.client.delete(self.url) self.assertEqual(response.status_code, 200) self.assertTrue('_auth_user_id' not in self.client.session)
def test_chair(self): '''Chair cannot create committee feedback''' self.user = models.new_user(username='******', password='******', user_type=User.TYPE_CHAIR, committee=self.committee_1) self.client.login(username='******', password='******') response = self.get_response(params=self.params) self.assertPermissionDenied(response)
def test_delegate(self): a = models.new_assignment(paper=self.object) delegate_user = models.new_user(user_type=User.TYPE_DELEGATE) self.as_user(delegate_user).do_test( expected_error=auto.EXP_PERMISSION_DENIED) delegate = models.new_delegate( assignment=a, school=a.registration.school, user=delegate_user) self.as_user(delegate_user).do_test()
def setUp(self): self.user = models.new_user(username='******', password='******') self.school = models.new_school(user=self.user) self.country = models.new_country() self.committee = models.new_committee() self.assignment = Assignment.objects.create( committee=self.committee, country=self.country, school=self.school, )
def setUp(self): self.advisor = models.new_user(username='******', password='******') self.advisor2 = models.new_user( username='******', password='******') self.chair = models.new_user( username='******', password='******', user_type=User.TYPE_CHAIR) self.delegate_user = models.new_user( username='******', password='******', user_type=User.TYPE_DELEGATE) self.school = models.new_school(user=self.advisor) self.school2 = models.new_school(user=self.advisor2) self.registration = models.new_registration(school=self.school) self.registration2 = models.new_registration(school=self.school2) self.committee = models.new_committee(user=self.chair) self.assignment = models.new_assignment( registration=self.registration, committee=self.committee) self.params['assignment'] = self.assignment.id self.params['school'] = self.school.id
def test_advisor(self): '''Advisor cannot create committee feedback''' self.user = models.new_user( username='******', password='******', user_type=User.TYPE_ADVISOR, ) self.client.login(username='******', password='******') response = self.get_response(params=self.params) self.assertPermissionDenied(response)
def test_advisor(self): '''Advisor cannot retrieve feedback''' self.user = models.new_user( username='******', password='******', user_type=User.TYPE_ADVISOR, ) self.client.login(username='******', password='******') response = self.get_response(self.feedback_1.id) self.assertPermissionDenied(response)
def setUp(self): self.advisor = models.new_user(username='******', password='******') self.school = models.new_school(user=self.advisor) self.registration = models.new_registration(school=self.school) self.params = { 'conference': self.registration.conference.session, 'school': self.registration.school.id, 'country_preferences': self.registration.country_preference_ids, 'assignments_finalized': True, }
def setUp(self): self.advisor = models.new_user(username='******', password='******') self.school = models.new_school(user=self.advisor) self.registration = models.new_registration(school=self.school) self.params = { 'conference': self.registration.conference.session, 'school': self.registration.school.id, 'country_preferences': self.registration.country_preference_ids, 'assignments_finalized': True }
def setUp(self): self.user = models.new_user(username='******', password='******') self.school = models.new_school(user=self.user) self.assignment1 = models.new_assignment(school=self.school) self.assignment2 = models.new_assignment(school=self.school) self.delegate1 = models.new_delegate(assignment=self.assignment1, ) self.delegate2 = models.new_delegate(assignment=self.assignment2, name='Trevor Dowds', email='*****@*****.**', summary='Good!')
def test_other_user(self): other_user = models.new_user(username='******', password='******') other_school = models.new_school(user=other_user) self.client.login(username='******', password='******') response = self.get_response(params={'school_id': self.school.id, 'conference_session': Conference.get_current()}) self.assertPermissionDenied(response) response = self.get_response() self.assertPermissionDenied(response)
def setUp(self): self.advisor = models.new_user(username='******', password='******') self.chair = models.new_user( username='******', password='******', user_type=User.TYPE_CHAIR) self.delegate_user = models.new_user( username='******', password='******', user_type=User.TYPE_DELEGATE) self.school = models.new_school(user=self.advisor) self.registration = models.new_registration(school=self.school) self.committee = models.new_committee(user=self.chair) self.assignment1 = models.new_assignment( registration=self.registration, committee=self.committee) self.assignment2 = models.new_assignment( registration=self.registration) self.delegate1 = models.new_delegate(assignment=self.assignment1, ) self.delegate2 = models.new_delegate( assignment=self.assignment2, name='Trevor Dowds', email='*****@*****.**', summary='Good!')
def test_login(self): user = models.new_user(username='******', password='******') user2 = models.new_user(username='******', password='******') credentials = {'username': '******', 'password': '******'} response = self.client.post( self.url, data=json.dumps(credentials), content_type='application/json') self.assertEqual(response.status_code, 201) self.assertEqual(int(self.client.session['_auth_user_id']), user.id) credentials = {'username': '******', 'password': '******'} response = self.client.post( self.url, data=json.dumps(credentials), content_type='application/json') self.assertEqual(int(self.client.session['_auth_user_id']), user.id) data = json.loads(response.content) self.assertEqual(data['detail'], 'Another user is currently logged in.')