예제 #1
0
파일: tests.py 프로젝트: perror/hackingweek
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, {})
예제 #2
0
파일: tests.py 프로젝트: perror/hackingweek
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)
예제 #3
0
파일: tests.py 프로젝트: perror/hackingweek
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)
예제 #4
0
파일: tests.py 프로젝트: perror/hackingweek
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)
예제 #5
0
def test_login_incorrect(url):
    c = ValidatingClient()
    response = c.post(url, {'user': '******', 'password': '******'})
    assert response.status_code == 200
예제 #6
0
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
예제 #7
0
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')
        )
예제 #8
0
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()
예제 #9
0
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'))