class CheckTeamJoin(TestCase): def setUp(self): self.client = ValidatingClient() self.user = User.objects.create_user('test_user', '*****@*****.**', 'secret') self.user.save() self.client.login(username='******', password='******') self.user0 = User.objects.create_user('test_user0', '*****@*****.**', 'secret') self.user0.save() self.team = Team(name='team') self.team.save() self.team.members.add(self.user0) self.team.save() def tearDown(self): self.user0.delete() self.user.delete() self.team.delete() def test_logged_user_team_join(self): with self.settings(CONTEST_BEGIN_DATE=one_day_after(), CONTEST_END_DATE=two_days_after()): url = '/team/join/request/' + str(self.team.pk) + '/' response = self.client.get(url) response = self.client.post(url, {}) self.assertRedirects(response, reverse('team_list'), status_code=302, target_status_code=200) # Trying to resubmit response = self.client.post(url, {}) self.assertRedirects(response, reverse('team_list'), status_code=302, target_status_code=200) self.client.logout() self.client.login(username='******', password='******') fake_key = '1' url = '/team/join/accept/' + str(self.team.pk) + '/' + fake_key + '/' response = self.client.post(url, {}) key = TeamJoinRequest.objects.get(pk=1).key url = '/team/join/accept/' + str(self.team.pk) + '/' + key + '/' response = self.client.post(url, {})
class CheckSettings(TestCase): def setUp(self): self.client = ValidatingClient() self.user = User.objects.create_user('test_user', '*****@*****.**', 'secret') self.user.save() self.client.login(username='******', password='******') def test_updating_settings(self): response = self.client.get('/accounts/settings/') self.assertEqual(response.status_code, 200) data = response.context['form'].initial data['status'] = 'Bac+1' data['organisation'] = 'organisation' response = self.client.post('/accounts/settings/', data)
class CheckSignUp(TestCase): def setUp(self): self.client = ValidatingClient() def test_signup(self): with self.settings(CONTEST_BEGIN_DATE=one_day_after(), CONTEST_END_DATE=two_days_after()): response = self.client.get('/accounts/signup/') self.assertEqual(response.status_code, 200) data = response.context['form'].initial data['username'] = '******' data['password'] = '******' data['password_confirm'] = 'password' data['email'] = '*****@*****.**' data['status'] = 'Bac+1' data['organisation'] = 'organisation' response = self.client.post('/accounts/signup/', data)
class CheckTeamCreation(TestCase): def setUp(self): self.client = ValidatingClient() self.user = User.objects.create_user('test_user', '*****@*****.**', 'secret') self.user.save() self.client.login(username='******', password='******') def tearDown(self): self.user.delete() def test_logged_user_team_create(self): with self.settings(CONTEST_BEGIN_DATE=one_day_after(), CONTEST_END_DATE=two_days_after()): response = self.client.get(reverse('team_create'), follow=True) self.assertEqual(response.status_code, 200) data = response.context['form'].initial data['name'] = 'team' response = self.client.post(reverse('team_create'), data)
def test_login_incorrect(url): c = ValidatingClient() response = c.post(url, {'user': '******', 'password': '******'}) assert response.status_code == 200
def test_views_post_and_redirect(url): c = ValidatingClient() User.objects.create_user('user00', '*****@*****.**', 'secret') response = c.post(url, {'username': '******', 'password': '******'}) assert response.status_code == 302
class UrlTests(TestCase): base_url = 'http://test.testserver.test' def get_path(self, url): return '/' + '/'.join(url.split('/')[3:]) def setUp(self): self.client = ValidatingClient() self.first_object = Object.objects.create(name='first one') self.second_object = Object.objects.create(name='second one') self.third_object = Object.objects.create(name='third one') self.fourth_object = Object.objects.create(name='fourth one') self.edit_1_url = reverse( 'object-edit', args=[self.first_object.pk] ) self.delete_1_url = reverse( 'object-delete', args=[self.first_object.pk] ) self.delete_2_url = reverse( 'object-delete', args=[self.second_object.pk] ) def test_access(self): urls = ( reverse('object-list'), reverse('object-add'), ) for name in ('object-edit', 'object-delete'): for object in Object.objects.all(): urls += (reverse(name, args=[object.pk]),) for url in urls: response = self.client.get(url) self.assertEqual(response.status_code, 200) def test_simple_post_edition_redirection(self): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': 'first new name', 'next': self.base_url + reverse('object-list') } ) # success url : the last visited page (home page) self.assertEqual(response.status_code, 302) self.assertEqual( self.get_path(response['Location']), reverse('object-list') ) def test_simple_post_deletion_redirection(self): response = self.client.get(self.delete_1_url) self.assertEqual(response.status_code, 200) response = self.client.post( self.delete_1_url, { 'next': self.base_url + reverse('object-list') } ) # success url : the last visited page (home page) self.assertEqual(response.status_code, 302) self.assertEqual( self.get_path(response['Location']), reverse('object-list') ) def test_invalid_next_redirection(self): for next_arg in ( self.base_url + reverse('object-list') + 'unknown_address', self.base_url + 'arpisiueasrsui', 'rauisreiuaesrsr/ruie', ' ', '', ): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': 'new name, next = ', 'next': next_arg, } ) # success url : the home page ("next" is not valid) self.assertEqual(response.status_code, 302) self.assertEqual( self.get_path(response['Location']), reverse('object-list') ) def test_not_next_in_POST_redirection(self): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': 'new name, next = ', } ) # success url : the home page (no "next" value) self.assertEqual(response.status_code, 302) self.assertEqual( self.get_path(response['Location']), reverse('object-list') ) def test_post_edition_good_redirection(self): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': 'first new name', 'next': self.base_url + self.delete_2_url } ) # success url : the last visited page (delete_2_url) self.assertEqual(response.status_code, 302) self.assertEqual( self.get_path(response['Location']), self.delete_2_url, ) def test_post_edition_good_redirection_without_baseurl(self): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': 'first new name', 'next': self.delete_2_url } ) # success url : the last visited page (delete_2_url) self.assertEqual(response.status_code, 302) self.assertEqual( self.get_path(response['Location']), self.delete_2_url, ) def test_post_deletion_bad_redirection(self): response = self.client.get(self.delete_1_url) self.assertEqual(response.status_code, 200) response = self.client.post( self.delete_1_url, { 'next': self.base_url + self.edit_1_url } ) # success url : not the last visited page (edit_1_url) # because this object does not exist any more, # but the index page self.assertEqual(response.status_code, 302) self.assertEqual( self.get_path(response['Location']), reverse('object-list') ) def test_post_bad_edition_bad_redirection(self): response = self.client.get( self.edit_1_url, ) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': '', # invalid form 'next': self.base_url + self.delete_2_url } ) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': 'my best value', # correction 'next': self.base_url + self.edit_1_url, } ) self.assertEqual(response.status_code, 302) # we don't want to be redirected to the edit form self.assertEqual( self.get_path(response['Location']), reverse('object-list') ) def test_post_bad_creation_bad_redirection(self): response = self.client.get( reverse('object-add') ) self.assertEqual(response.status_code, 200) response = self.client.post( reverse('object-add'), { 'name': '', # invalid form 'next': self.base_url + self.edit_1_url } ) self.assertEqual(response.status_code, 200) response = self.client.post( reverse('object-add'), { 'name': 'my best value', # correction 'next': self.base_url + reverse('object-add') } ) self.assertEqual(Object.objects.count(), 5) self.assertEqual(response.status_code, 302) # we don't want to be redirected to the creation form self.assertEqual( self.get_path(response['Location']), reverse('object-list') )
class MyTest(TestCase): def path(self, url): return url # return '/' + '/'.join(url.split('/')[3:]) def setUp(self): update_icons_db() self.icon = MessageIcon.objects.get(name="photo.gif") self.icon0 = MessageIcon.objects.get(name="1a.gif") self.icon1 = MessageIcon.objects.get(name="union-jack.png") self.client = ValidatingClient() self.iseult = User.objects.create_user( username='******', email='*****@*****.**', password='******', ) self.cesar = User.objects.create_user( username='******', email='*****@*****.**', password='******', ) self._post_first_message() def access(self, name, code): response = self.client.get(reverse(name)) self.assertEqual(response.status_code, code) def access_url(self, url, code): response = self.client.get(url) self.assertEqual(response.status_code, code) def _post_first_message(self): self.client.login( username='******', password='******', ) response = self.client.post( reverse('forum:new'), { 'icon': self.icon.pk, 'title': 'test title ®®', 'text': ''' tstra auileæ~ǜß®\œù©þðijþ’ù&æþiàn auieiiausrecpiu t'yx.lmmd =51476415678986451u4àuià,jl(è«épt,i. ''', } ) self.assertEqual(response.status_code, 302) self.first_message = Message.objects.get(title='test title ®®') self.assertEqual( self.path(response['Location']), self.first_message.get_absolute_url(), ) self.assertEqual( self.path(response['Location']), reverse( 'forum:message', args=[self.first_message.pk] ) + '#forum-message', ) self.access_url(self.first_message.get_absolute_url(), 200) self.client.logout()
class UrlTests(TestCase): base_url = 'http://test.testserver.test' def get_path(self, url): return '/' + '/'.join(url.split('/')[3:]) def setUp(self): self.client = ValidatingClient() self.first_object = Object.objects.create(name='first one') self.second_object = Object.objects.create(name='second one') self.third_object = Object.objects.create(name='third one') self.fourth_object = Object.objects.create(name='fourth one') self.edit_1_url = reverse('object-edit', args=[self.first_object.pk]) self.delete_1_url = reverse('object-delete', args=[self.first_object.pk]) self.delete_2_url = reverse('object-delete', args=[self.second_object.pk]) def test_access(self): urls = ( reverse('object-list'), reverse('object-add'), ) for name in ('object-edit', 'object-delete'): for object in Object.objects.all(): urls += (reverse(name, args=[object.pk]), ) for url in urls: response = self.client.get(url) self.assertEqual(response.status_code, 200) def test_simple_post_edition_redirection(self): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': 'first new name', 'next': self.base_url + reverse('object-list') }) # success url : the last visited page (home page) self.assertEqual(response.status_code, 302) self.assertEqual(self.get_path(response['Location']), reverse('object-list')) def test_simple_post_deletion_redirection(self): response = self.client.get(self.delete_1_url) self.assertEqual(response.status_code, 200) response = self.client.post( self.delete_1_url, {'next': self.base_url + reverse('object-list')}) # success url : the last visited page (home page) self.assertEqual(response.status_code, 302) self.assertEqual(self.get_path(response['Location']), reverse('object-list')) def test_invalid_next_redirection(self): for next_arg in ( self.base_url + reverse('object-list') + 'unknown_address', self.base_url + 'arpisiueasrsui', 'rauisreiuaesrsr/ruie', ' ', '', ): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post(self.edit_1_url, { 'name': 'new name, next = ', 'next': next_arg, }) # success url : the home page ("next" is not valid) self.assertEqual(response.status_code, 302) self.assertEqual(self.get_path(response['Location']), reverse('object-list')) def test_not_next_in_POST_redirection(self): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post(self.edit_1_url, { 'name': 'new name, next = ', }) # success url : the home page (no "next" value) self.assertEqual(response.status_code, 302) self.assertEqual(self.get_path(response['Location']), reverse('object-list')) def test_post_edition_good_redirection(self): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post(self.edit_1_url, { 'name': 'first new name', 'next': self.base_url + self.delete_2_url }) # success url : the last visited page (delete_2_url) self.assertEqual(response.status_code, 302) self.assertEqual( self.get_path(response['Location']), self.delete_2_url, ) def test_post_edition_good_redirection_without_baseurl(self): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post(self.edit_1_url, { 'name': 'first new name', 'next': self.delete_2_url }) # success url : the last visited page (delete_2_url) self.assertEqual(response.status_code, 302) self.assertEqual( self.get_path(response['Location']), self.delete_2_url, ) def test_post_deletion_bad_redirection(self): response = self.client.get(self.delete_1_url) self.assertEqual(response.status_code, 200) response = self.client.post(self.delete_1_url, {'next': self.base_url + self.edit_1_url}) # success url : not the last visited page (edit_1_url) # because this object does not exist any more, # but the index page self.assertEqual(response.status_code, 302) self.assertEqual(self.get_path(response['Location']), reverse('object-list')) def test_post_bad_edition_bad_redirection(self): response = self.client.get(self.edit_1_url, ) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': '', # invalid form 'next': self.base_url + self.delete_2_url }) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': 'my best value', # correction 'next': self.base_url + self.edit_1_url, }) self.assertEqual(response.status_code, 302) # we don't want to be redirected to the edit form self.assertEqual(self.get_path(response['Location']), reverse('object-list')) def test_post_bad_creation_bad_redirection(self): response = self.client.get(reverse('object-add')) self.assertEqual(response.status_code, 200) response = self.client.post( reverse('object-add'), { 'name': '', # invalid form 'next': self.base_url + self.edit_1_url }) self.assertEqual(response.status_code, 200) response = self.client.post( reverse('object-add'), { 'name': 'my best value', # correction 'next': self.base_url + reverse('object-add') }) self.assertEqual(Object.objects.count(), 5) self.assertEqual(response.status_code, 302) # we don't want to be redirected to the creation form self.assertEqual(self.get_path(response['Location']), reverse('object-list'))