def test_login_on_confirm_uuid_user(self, mocked_gum, mock_perform_login):
        user = UUIDUser(
            is_active=True,
            email='*****@*****.**',
            username='******')

        # fake post-signup account_user stash
        session = self.client.session
        session['account_user'] = user_pk_to_url_str(user)
        session.save()

        # fake email and email confirmation to avoid swappable model hell
        email = Mock(verified=False, user=user)
        key = 'mockkey'
        confirmation = Mock(autospec=EmailConfirmationHMAC, key=key)
        confirmation.email_address = email
        confirmation.from_key.return_value = confirmation
        mock_perform_login.return_value = HttpResponseRedirect(redirect_to='/')

        with patch('allauth.account.views.EmailConfirmationHMAC',
                   confirmation):
            self.client.post(
                reverse('account_confirm_email',
                        args=[key]))

        assert mock_perform_login.called
Exemplo n.º 2
0
    def test_login_on_confirm_uuid_user(self, mocked_gum, mock_perform_login):
        user = UUIDUser(
            is_active=True,
            email='*****@*****.**',
            username='******')

        # fake post-signup account_user stash
        session = self.client.session
        session['account_user'] = user_pk_to_url_str(user)
        session.save()

        # fake email and email confirmation to avoid swappable model hell
        email = Mock(verified=False, user=user)
        key = 'mockkey'
        confirmation = Mock(autospec=EmailConfirmationHMAC, key=key)
        confirmation.email_address = email
        confirmation.from_key.return_value = confirmation
        mock_perform_login.return_value = HttpResponseRedirect(redirect_to='/')

        with patch('allauth.account.views.EmailConfirmationHMAC',
                   confirmation):
            self.client.post(
                reverse('account_confirm_email',
                        args=[key]))

        assert mock_perform_login.called
    def test_login_on_confirm(self):
        user = self._create_user()
        email = EmailAddress.objects.create(
            user=user,
            email='*****@*****.**',
            verified=False,
            primary=True)
        key = EmailConfirmationHMAC(email).key

        receiver_mock = Mock()  # we've logged if signal was called
        user_logged_in.connect(receiver_mock)

        # fake post-signup account_user stash
        session = self.client.session
        session['account_user'] = user_pk_to_url_str(user)
        session.save()

        resp = self.client.post(
            reverse('account_confirm_email',
                    args=[key]))
        email = EmailAddress.objects.get(pk=email.pk)
        self.assertTrue(email.verified)

        receiver_mock.assert_called_once_with(
            sender=get_user_model(),
            request=resp.wsgi_request,
            response=resp,
            user=get_user_model().objects.get(username='******'),
            signal=user_logged_in,
        )

        user_logged_in.disconnect(receiver_mock)
Exemplo n.º 4
0
    def test_login_on_confirm(self):
        user = self._create_user()
        email = EmailAddress.objects.create(
            user=user,
            email='*****@*****.**',
            verified=False,
            primary=True)
        key = EmailConfirmationHMAC(email).key

        receiver_mock = Mock()  # we've logged if signal was called
        user_logged_in.connect(receiver_mock)

        # fake post-signup account_user stash
        session = self.client.session
        session['account_user'] = user_pk_to_url_str(user)
        session.save()

        resp = self.client.post(
            reverse('account_confirm_email',
                    args=[key]))
        email = EmailAddress.objects.get(pk=email.pk)
        self.assertTrue(email.verified)

        receiver_mock.assert_called_once_with(
            sender=get_user_model(),
            request=resp.wsgi_request,
            response=resp,
            user=get_user_model().objects.get(username='******'),
            signal=user_logged_in,
        )

        user_logged_in.disconnect(receiver_mock)
Exemplo n.º 5
0
 def get_socialaccount(self, response, token):
     """
     Returns SocialLogin based on the data from the request
     """
     request = Mock()
     login = self.provider.sociallogin_from_response(request, response)
     login.token = token
     return login
Exemplo n.º 6
0
    def test_logout_view_on_post(self):
        c, resp = self._logout_view('get')
        self.assertTemplateUsed(
            resp, 'account/logout.%s' % app_settings.TEMPLATE_EXTENSION)

        receiver_mock = Mock()
        user_logged_out.connect(receiver_mock)

        resp = c.post(reverse('account_logout'))

        self.assertTemplateUsed(resp, 'account/messages/logged_out.txt')
        receiver_mock.assert_called_once_with(
            sender=get_user_model(),
            request=resp.wsgi_request,
            user=get_user_model().objects.get(username='******'),
            signal=user_logged_out,
        )

        user_logged_out.disconnect(receiver_mock)
Exemplo n.º 7
0
    def test_logout_view_on_post(self):
        c, resp = self._logout_view('get')
        self.assertTemplateUsed(
            resp,
            'account/logout.%s' % app_settings.TEMPLATE_EXTENSION)

        receiver_mock = Mock()
        user_logged_out.connect(receiver_mock)

        resp = c.post(reverse('account_logout'))

        self.assertTemplateUsed(resp, 'account/messages/logged_out.txt')
        receiver_mock.assert_called_once_with(
            sender=get_user_model(),
            request=resp.wsgi_request,
            user=get_user_model().objects.get(username='******'),
            signal=user_logged_out,
        )

        user_logged_out.disconnect(receiver_mock)
Exemplo n.º 8
0
 def test_login_with_extra_attributes(self):
     with patch('allauth.socialaccount.providers.openid.views.QUERY_EMAIL',
                True):
         resp = self.client.post(reverse(views.login),
                                 dict(openid='http://me.yahoo.com'))
     assert 'login.yahooapis' in resp['location']
     with patch('allauth.socialaccount.providers'
                '.openid.views._openid_consumer') as consumer_mock:
         client = Mock()
         complete = Mock()
         endpoint = Mock()
         consumer_mock.return_value = client
         client.complete = complete
         complete_response = Mock()
         complete.return_value = complete_response
         complete_response.endpoint = endpoint
         complete_response.endpoint.server_url = 'http://me.yahoo.com'
         complete_response.status = consumer.SUCCESS
         complete_response.identity_url = 'http://dummy/john/'
         with patch('allauth.socialaccount.providers'
                    '.openid.utils.SRegResponse') as sr_mock:
             with patch('allauth.socialaccount.providers'
                        '.openid.utils.FetchResponse') as fr_mock:
                 sreg_mock = Mock()
                 ax_mock = Mock()
                 sr_mock.fromSuccessResponse = sreg_mock
                 fr_mock.fromSuccessResponse = ax_mock
                 sreg_mock.return_value = {}
                 ax_mock.return_value = {
                     AXAttribute.CONTACT_EMAIL: ['*****@*****.**'],
                     AXAttribute.PERSON_FIRST_NAME: ['raymond'],
                     'http://axschema.org/contact/phone/default':
                         ['123456789']}
                 resp = self.client.post(reverse('openid_callback'))
                 self.assertRedirects(
                     resp, "/accounts/profile/",
                     fetch_redirect_response=False
                 )
                 socialaccount = \
                     SocialAccount.objects.get(user__first_name='raymond')
                 self.assertEqual(
                     socialaccount.extra_data.get('phone'), '123456789')
Exemplo n.º 9
0
 def test_login(self):
     resp = self.client.post(reverse(views.login),
                             dict(openid='http://me.yahoo.com'))
     assert 'login.yahooapis' in resp['location']
     with patch('allauth.socialaccount.providers'
                '.openid.views._openid_consumer') as consumer_mock:
         client = Mock()
         complete = Mock()
         consumer_mock.return_value = client
         client.complete = complete
         complete_response = Mock()
         complete.return_value = complete_response
         complete_response.status = consumer.SUCCESS
         complete_response.identity_url = 'http://dummy/john/'
         with patch('allauth.socialaccount.providers'
                    '.openid.utils.SRegResponse') as sr_mock:
             with patch('allauth.socialaccount.providers'
                        '.openid.utils.FetchResponse') as fr_mock:
                 sreg_mock = Mock()
                 ax_mock = Mock()
                 sr_mock.fromSuccessResponse = sreg_mock
                 fr_mock.fromSuccessResponse = ax_mock
                 sreg_mock.return_value = {}
                 ax_mock.return_value = {AXAttribute.PERSON_FIRST_NAME:
                                         ['raymond']}
                 resp = self.client.post(reverse('openid_callback'))
                 self.assertRedirects(
                     resp, "/accounts/profile/",
                     fetch_redirect_response=False
                 )
                 get_user_model().objects.get(first_name='raymond')
Exemplo n.º 10
0
 def test_login_with_extra_attributes(self):
     with patch('allauth.socialaccount.providers.openid.views.QUERY_EMAIL',
                True):
         resp = self.client.post(reverse(views.login),
                                 dict(openid='http://me.yahoo.com'))
     assert 'login.yahooapis' in resp['location']
     with patch('allauth.socialaccount.providers'
                '.openid.views._openid_consumer') as consumer_mock:
         client = Mock()
         complete = Mock()
         endpoint = Mock()
         consumer_mock.return_value = client
         client.complete = complete
         complete_response = Mock()
         complete.return_value = complete_response
         complete_response.endpoint = endpoint
         complete_response.endpoint.server_url = 'http://me.yahoo.com'
         complete_response.status = consumer.SUCCESS
         complete_response.identity_url = 'http://dummy/john/'
         with patch('allauth.socialaccount.providers'
                    '.openid.utils.SRegResponse') as sr_mock:
             with patch('allauth.socialaccount.providers'
                        '.openid.utils.FetchResponse') as fr_mock:
                 sreg_mock = Mock()
                 ax_mock = Mock()
                 sr_mock.fromSuccessResponse = sreg_mock
                 fr_mock.fromSuccessResponse = ax_mock
                 sreg_mock.return_value = {}
                 ax_mock.return_value = {
                     AXAttribute.CONTACT_EMAIL: ['*****@*****.**'],
                     AXAttribute.PERSON_FIRST_NAME: ['raymond'],
                     'http://axschema.org/contact/phone/default':
                     ['123456789']
                 }
                 resp = self.client.post(reverse('openid_callback'))
                 self.assertRedirects(resp,
                                      "/accounts/profile/",
                                      fetch_redirect_response=False)
                 socialaccount = \
                     SocialAccount.objects.get(user__first_name='raymond')
                 self.assertEqual(socialaccount.extra_data.get('phone'),
                                  '123456789')
Exemplo n.º 11
0
 def test_login(self):
     # Location: https://s.yimg.com/wm/mbr/html/openid-eol-0.0.1.html
     resp = self.client.post(reverse(views.login),
                             dict(openid='http://me.yahoo.com'))
     assert 'login.yahooapis' in resp['location']
     with patch('allauth.socialaccount.providers'
                '.openid.views._openid_consumer') as consumer_mock:
         client = Mock()
         complete = Mock()
         consumer_mock.return_value = client
         client.complete = complete
         complete_response = Mock()
         complete.return_value = complete_response
         complete_response.status = consumer.SUCCESS
         complete_response.identity_url = 'http://dummy/john/'
         with patch('allauth.socialaccount.providers'
                    '.openid.utils.SRegResponse') as sr_mock:
             with patch('allauth.socialaccount.providers'
                        '.openid.utils.FetchResponse') as fr_mock:
                 sreg_mock = Mock()
                 ax_mock = Mock()
                 sr_mock.fromSuccessResponse = sreg_mock
                 fr_mock.fromSuccessResponse = ax_mock
                 sreg_mock.return_value = {}
                 ax_mock.return_value = {
                     AXAttribute.PERSON_FIRST_NAME: ['raymond']
                 }
                 resp = self.client.post(reverse('openid_callback'))
                 self.assertRedirects(resp,
                                      "/accounts/profile/",
                                      fetch_redirect_response=False)
                 get_user_model().objects.get(first_name='raymond')
Exemplo n.º 12
0
 def test_login_with_extra_attributes(self):
     with patch("allauth.socialaccount.providers.openid.views.QUERY_EMAIL",
                True):
         resp = self.client.post(reverse(views.login),
                                 dict(openid="http://me.yahoo.com"))
     assert "login.yahooapis" in resp["location"]
     with patch("allauth.socialaccount.providers"
                ".openid.views._openid_consumer") as consumer_mock:
         client = Mock()
         complete = Mock()
         endpoint = Mock()
         consumer_mock.return_value = client
         client.complete = complete
         complete_response = Mock()
         complete.return_value = complete_response
         complete_response.endpoint = endpoint
         complete_response.endpoint.server_url = "http://me.yahoo.com"
         complete_response.status = consumer.SUCCESS
         complete_response.identity_url = "http://dummy/john/"
         with patch("allauth.socialaccount.providers"
                    ".openid.utils.SRegResponse") as sr_mock:
             with patch("allauth.socialaccount.providers"
                        ".openid.utils.FetchResponse") as fr_mock:
                 sreg_mock = Mock()
                 ax_mock = Mock()
                 sr_mock.fromSuccessResponse = sreg_mock
                 fr_mock.fromSuccessResponse = ax_mock
                 sreg_mock.return_value = {}
                 ax_mock.return_value = {
                     AXAttribute.CONTACT_EMAIL: ["*****@*****.**"],
                     AXAttribute.PERSON_FIRST_NAME: ["raymond"],
                     "http://axschema.org/contact/phone/default":
                     ["123456789"],
                 }
                 resp = self.client.post(reverse("openid_callback"))
                 self.assertRedirects(
                     resp,
                     "/accounts/profile/",
                     fetch_redirect_response=False,
                 )
                 socialaccount = SocialAccount.objects.get(
                     user__first_name="raymond")
                 self.assertEqual(socialaccount.extra_data.get("phone"),
                                  "123456789")