Projet

Général

Profil

0001-python3-handle-miscellaneous-encoding-variations-in-.patch

Paul Marillonnet, 06 mars 2019 21:19

Télécharger (5,92 ko)

Voir les différences:

Subject: [PATCH] python3: handle miscellaneous encoding variations in main
 test file (#31173)

 tests/test_all.py | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)
tests/test_all.py
14 14
from django.contrib.auth import get_user_model
15 15
from django.contrib.contenttypes.models import ContentType
16 16
from django.utils.translation import ugettext as _
17
from django.utils.six.moves.urllib.parse import quote, unquote
17 18

  
18 19
from rest_framework import test
19 20
from rest_framework import status
......
141 142
        request = rf.get('/coin', data={'next': '..'})
142 143
        request2 = rf.get('/coin', data={'next': '..', 'token': 'xxx'})
143 144
        response = redirect(request, '/boob/', keep_params=True)
144
        self.assertEqualsURL(response['Location'], '/boob/?next=..')
145
        self.assertEqualsURL(unquote(response['Location']), '/boob/?next=..')
145 146
        response = redirect(request, '/boob/', keep_params=True,
146 147
                            exclude=['next'])
147
        self.assertEqualsURL(response['Location'], '/boob/')
148
        self.assertEqualsURL(unquote(response['Location']), '/boob/')
148 149
        response = redirect(request2, '/boob/', keep_params=True)
149
        self.assertEqualsURL(response['Location'], '/boob/?token=xxx&next=..')
150
        self.assertEqualsURL(unquote(response['Location']), '/boob/?token=xxx&next=..')
150 151
        response = redirect(request, '/boob/', keep_params=True,
151 152
                            exclude=['token'])
152
        self.assertEqualsURL(response['Location'], '/boob/?next=..')
153
        self.assertEqualsURL(unquote(response['Location']), '/boob/?next=..')
153 154
        response = redirect(request, '/boob/', keep_params=True,
154 155
                            include=['next'])
155
        self.assertEqualsURL(response['Location'], '/boob/?next=..')
156
        self.assertEqualsURL(unquote(response['Location']), '/boob/?next=..')
156 157
        response = redirect(request, '/boob/', keep_params=True,
157 158
                            include=['next'], params={'token': 'uuu'})
158
        self.assertEqualsURL(response['Location'], '/boob/?token=uuu&next=..')
159
        self.assertEqualsURL(unquote(response['Location']), '/boob/?token=uuu&next=..')
159 160

  
160 161
    def test_redirect_to_login(self):
161 162
        from authentic2.utils import redirect_to_login
......
163 164
        rf = RequestFactory()
164 165
        request = rf.get('/coin', data={'next': '..'})
165 166
        response = redirect_to_login(request)
166
        self.assertEqualsURL(response['Location'], '/login/?next=..')
167
        self.assertEqualsURL(response['Location'], quote('/login/?next=..'))
167 168

  
168 169
    def test_continue_to_next_url(self):
169 170
        from authentic2.utils import continue_to_next_url
......
171 172
        rf = RequestFactory()
172 173
        request = rf.get('/coin', data={'next': '/zob/', 'nonce': 'xxx'})
173 174
        response = continue_to_next_url(request)
174
        self.assertEqualsURL(response['Location'], '/zob/?nonce=xxx')
175
        self.assertEqualsURL(response['Location'], quote('/zob/?nonce=xxx'))
175 176

  
176 177
    def test_login_require(self):
177 178
        from authentic2.utils import login_require
......
179 180
        rf = RequestFactory()
180 181
        request = rf.get('/coin', data={'next': '/zob/', 'nonce': 'xxx'})
181 182
        response = login_require(request)
182
        self.assertEqualsURL(response['Location'].split('?', 1)[0], '/login/')
183
        self.assertEqualsURL(unquote(response['Location']).split('?', 1)[0], '/login/')
183 184
        self.assertEqualsURL(
184
            urlparse.parse_qs(
185
                response['Location'].split('?', 1)[1])['next'][0],
186
            '/coin?nonce=xxx&next=/zob/')
185
            list(urlparse.parse_qs(unquote(response['Location'])).values())[0][0],
186
            '/coin?nonce=xxx&next=%2Fzob%2F')
187 187

  
188 188

  
189 189
class ValidatorsTest(TestCase):
......
493 493
        activation_url = get_link_from_mail(mail.outbox[-1])
494 494
        response = client.get(activation_url)
495 495
        self.assertEqual(response.status_code, status.HTTP_200_OK)
496
        assert utils.make_url(return_url, params={'token': token}) in response.content
496
        assert utils.make_url(return_url, params={'token': token}) in response.content.decode('utf-8')
497 497
        self.assertEqual(User.objects.count(), user_count + 1)
498 498
        response = client.get(reverse('auth_homepage'))
499 499
        self.assertContains(response, username)
......
620 620
        activation_url = get_link_from_mail(activation_mail1)
621 621
        response = client.get(activation_url)
622 622
        self.assertEqual(response.status_code, status.HTTP_200_OK)
623
        assert utils.make_url(return_url, params={'token': token}) in response.content
623
        assert utils.make_url(return_url, params={'token': token}) in response.content.decode('utf-8')
624 624
        self.assertEqual(User.objects.count(), user_count + 1)
625 625
        response = client.get(reverse('auth_homepage'))
626 626
        self.assertContains(response, username)
......
744 744
        activation_url = get_link_from_mail(activation_mail1)
745 745
        response = client.get(activation_url)
746 746
        self.assertEqual(response.status_code, status.HTTP_200_OK)
747
        assert utils.make_url(return_url, params={'token': token}) in response.content
747
        assert utils.make_url(return_url, params={'token': token}) in response.content.decode('utf-8')
748 748
        self.assertEqual(User.objects.count(), user_count + 1)
749 749
        response = client.get(reverse('auth_homepage'))
750 750
        self.assertContains(response, username)
751
-