def test_super_user_gets_all_talk_urls(self): create_user('super', superuser=True) self.client.login(username='******', password='******') self.assert_urls_accessible(self.talk_a) self.assert_urls_accessible(self.talk_s) self.assert_urls_accessible(self.talk_r) self.assert_missing_talk_urls_code(404)
def test_update_submitted_superuser(self): create_user('super', superuser=True) self.check_talk_update(self.talk_s, 200, auth={ 'username': '******', 'password': '******', })
def test_view_consideration_has_view_all_perm(self): create_user('reviewer', perms=['view_all_talks']) self.check_talk_view(self.talk_u, 200, auth={ 'username': '******', 'password': '******', })
def test_view_provisional_has_view_all_perm(self): create_user('reviewer', perms=['view_all_talks']) self.check_talk_view(self.talk_p, 200, auth={ 'username': '******', 'password': '******', })
def test_view_notes_rejected_superuser(self): create_user('super', superuser=True) self.check_talk_view(self.talk_r, True, True, auth={ 'username': '******', 'password': '******', })
def test_view_notes_rejected_both_perms(self): create_user('editor', perms=['edit_private_notes', 'view_all_talks']) self.check_talk_view(self.talk_r, True, True, auth={ 'username': '******', 'password': '******', })
def test_view_notes_rejected_has_view_all_perm(self): create_user('reviewer', perms=['view_all_talks']) self.check_talk_view(self.talk_r, True, False, auth={ 'username': '******', 'password': '******', })
def test_user_with_view_all(self): """Test that users with the view_all permission see all talks.""" create_user('reviewer', perms=['view_all_talks']) self.client.login(username='******', password='******') response = self.client.get('/talks/') self.assertEqual(response.status_code, 200) self.assertEqual(set(response.context['talk_list']), set([self.talk_a, self.talk_r, self.talk_p, self.talk_s, self.talk_u, self.talk_c]))
def test_admin_user(self): """Test that admin users see all talks.""" create_user('super', superuser=True) self.client.login(username='******', password='******') response = self.client.get('/talks/') self.assertEqual(response.status_code, 200) self.assertEqual(set(response.context['talk_list']), set([self.talk_a, self.talk_r, self.talk_p, self.talk_s, self.talk_u, self.talk_c]))
def test_view_notes_accepted_has_edit_private_notes(self): create_user('editor', perms=['edit_private_notes']) self.check_talk_view(self.talk_a, False, True, auth={ 'username': '******', 'password': '******', })
def test_view_notes_rejected_has_edit_private_notes(self): # edit_private_notes doesn't imply view_all_talks create_user('editor', perms=['edit_private_notes']) self.check_talk_view(self.talk_r, False, False, auth={ 'username': '******', 'password': '******', })
def test_ordinary_users_get_accepted_talks(self): create_user('norm') self.client.login(username='******', password='******') response = self.client.get('/talks/api/talks/') self.assertEqual(response.data['count'], 1) self.assertEqual(response.data['results'][0]['title'], "Talk A") response = self.client.get('/talks/api/talks/%d/' % self.talk_a.talk_id) self.assertEqual(response.data['title'], 'Talk A') response = self.client.get('/talks/api/talks/%d/' % self.talk_r.talk_id) self.assertEqual(response.status_code, 404)
def test_reviewer_all_talks(self): create_user('reviewer', perms=['view_all_talks']) self.client.login(username='******', password='******') response = self.client.get('/talks/api/talks/') self.assertEqual(response.data['count'], 3) self.assertEqual(response.data['results'][0]['title'], "Talk A") self.assertEqual(response.data['results'][1]['title'], "Talk R") self.assertEqual(response.data['results'][2]['title'], "Talk S") response = self.client.get('/talks/api/talks/%d/' % self.talk_a.talk_id) self.assertEqual(response.data['title'], 'Talk A') response = self.client.get('/talks/api/talks/%d/' % self.talk_r.talk_id) self.assertEqual(response.data['title'], 'Talk R')
def test_super_user_gets_everything(self): create_user('super', superuser=True) self.client.login(username='******', password='******') response = self.client.get('/talks/api/talks/') self.assertEqual(response.data['count'], 3) self.assertEqual(response.data['results'][0]['title'], "Talk A") self.assertEqual(response.data['results'][1]['title'], "Talk R") self.assertEqual(response.data['results'][2]['title'], "Talk S") response = self.client.get('/talks/api/talks/%d/' % self.talk_a.talk_id) self.assertEqual(response.data['title'], 'Talk A') response = self.client.get('/talks/api/talks/%d/' % self.talk_r.talk_id) self.assertEqual(response.data['title'], 'Talk R')
def test_posts(self): email = "*****@*****.**" user = create_user('Joe', email=email) client = Client() post_data = { "ticket_type": "Test Type", "barcode": "54321", "email": "*****@*****.**" } with self.settings(WAFER_TICKETS_SECRET='testsecret'): # Check that the secret matters response = client.post('/tickets/zapier_guest_hook/', json.dumps(post_data), content_type="application/json", HTTP_X_ZAPIER_SECRET='wrongsecret') self.assertEqual(response.status_code, 403) # Check that the ticket gets processed correctly with an # existing user response = client.post('/tickets/zapier_guest_hook/', json.dumps(post_data), content_type="application/json", HTTP_X_ZAPIER_SECRET='testsecret') self.assertEqual(response.status_code, 200) ticket = Ticket.objects.get(barcode=54321) self.assertEqual(ticket.barcode, 54321) self.assertEqual(ticket.email, email) self.assertEqual(ticket.user, user) # Check duplicate post doesn't change anything response = client.post('/tickets/zapier_guest_hook/', json.dumps(post_data), content_type="application/json", HTTP_X_ZAPIER_SECRET='testsecret') self.assertEqual(response.status_code, 200) ticket = Ticket.objects.get(barcode=54321) self.assertEqual(ticket.barcode, 54321) self.assertEqual(ticket.email, email) self.assertEqual(ticket.user, user) # Change email to one that doesn't exist post_data['email'] = '*****@*****.**' post_data['barcode'] = 65432 response = client.post('/tickets/zapier_guest_hook/', json.dumps(post_data), content_type="application/json", HTTP_X_ZAPIER_SECRET='testsecret') self.assertEqual(response.status_code, 200) ticket = Ticket.objects.get(barcode=65432) self.assertEqual(ticket.barcode, 65432) self.assertEqual(ticket.email, '*****@*****.**') self.assertEqual(ticket.user, None) # Test cancelation response = client.post('/tickets/zapier_cancel_hook/', json.dumps(post_data), content_type="application/json", HTTP_X_ZAPIER_SECRET='testsecret') self.assertEqual(response.status_code, 200) # Check ticket has been deleted self.assertFalse(Ticket.objects.filter(barcode=65432).exists()) # Check earlier ticket still exists self.assertEqual(Ticket.objects.filter(barcode=54321).count(), 1)
def create_talk(title, status, username): user = create_user(username) talk = Talk.objects.create( title=title, status=status, corresponding_author_id=user.id) talk.authors.add(user) talk.notes = "Some notes for talk %s" % title talk.private_notes = "Some private notes for talk %s" % title talk.save() return talk
def test_simple_import_with_user(self): user = create_user("User Foo", email=self.user_email) import_ticket(12345, "Individual", self.user_email) ticket_type = TicketType.objects.get(name="Individual") ticket = Ticket.objects.get(barcode=12345) self.assertEqual(ticket.barcode, 12345) self.assertEqual(ticket.email, self.user_email) self.assertEqual(ticket.type, ticket_type) self.assertEqual(ticket.user, user)
def test_create_talk(self): author = create_user("author") response = self.client.post('/talks/api/talks/', data={ 'talk_type': None, 'status': 'A', 'title': 'Talk Foo', 'abstract': 'Concrete', 'corresponding_author': author.id, 'authors': [author.id], }, format='json') talk = Talk.objects.get() self.assertEqual(response.data, self.mk_result(talk))
def setUp(self): create_user('super', superuser=True) self.client = SortedResultsClient(sort_key="url") self.client.login(username='******', password='******')
def test_ordinary_users_get_no_talk_urls(self): create_user('norm') self.assert_urls_forbidden(self.talk_a) self.assert_urls_forbidden(self.talk_s) self.assert_urls_forbidden(self.talk_r) self.assert_missing_talk_urls_code(403)
def setUp(self): create_user("super", superuser=True) self.client = SortedResultsClient(sort_key="barcode") self.client.login(username="******", password="******")