Exemplo n.º 1
0
    def setUp(self):
        super(TestAuthMixin, self).setUp()
        cache.clear()

        self.user = Identity.objects.create(email='*****@*****.**')

        self.request = init_request()

        self.mixin = EntreeAuthMixin()
        self.mixin.request = self.request
Exemplo n.º 2
0
    def setUp(self):
        super(TestAuthMixin, self).setUp()
        cache.clear()

        self.user = Identity.objects.create(email='*****@*****.**')

        self.request = init_request()

        self.mixin = EntreeAuthMixin()
        self.mixin.request = self.request
Exemplo n.º 3
0
class TestAuthMixin(TestCase):

    def setUp(self):
        super(TestAuthMixin, self).setUp()
        cache.clear()

        self.user = Identity.objects.create(email='*****@*****.**')

        self.request = init_request()

        self.mixin = EntreeAuthMixin()
        self.mixin.request = self.request


    def test_auth_mixin_login_set_all_the_shit_into_session(self):
        self.mixin.entree_login(self.user)

        assert ENTREE['SESSION_KEY'] in self.request.session
        assert ENTREE['STORAGE_TOKEN_KEY'] in self.request.session

    def test_auth_mixin_login_create_login_token(self):
        self.mixin.entree_login(self.user)

        token_str = self.request.session[ENTREE['STORAGE_TOKEN_KEY']]

        token = LoginToken.objects.get(value=token_str, user=self.user)

        assert_equals(AUTH_TOKEN, token.token_type)

    def test_login_flush_sess_if_another_user_lives_in_there(self):
        mock_flush = Mock()
        alien = Identity.objects.create(email='*****@*****.**')

        self.request.session[ENTREE['SESSION_KEY']] = alien.pk
        self.request.session[SESSION_KEY] = 'foo'
        self.request.session.flush = mock_flush

        self.mixin.entree_login(self.user)

        assert_equals(True, mock_flush.called)

    def test_logout_set_anon_user_into_entree_user_prop(self):

        self.mixin.entree_logout()

        assert_equals(self.request.entree_user.__class__, AnonymousUser)

    def test_logout_sess_propss_are_deleted(self):

        self.request.session[ENTREE['SESSION_KEY']] = 'foo'
        self.request.session[ENTREE['STORAGE_TOKEN_KEY']] = 'bar'

        self.mixin.entree_logout()

        assert ENTREE['SESSION_KEY'] not in self.request.session
        assert ENTREE['STORAGE_TOKEN_KEY'] not in self.request.session

    @patch('entree.enauth.views.render_to_response')
    def test_next_url_overriden_by_inactive_profile(self, patched_render):

        site = EntreeSite.objects.create(pk=ENTREE['SITE_ID'])

        self.mixin.entree_login(self.user, site_id=site.pk)

        args, kwargs = patched_render.call_args
        template, context = args

        assert_equals(context['next_url'], reverse('profile_edit', kwargs={'site_id': site.pk}))

    @patch('entree.enauth.views.render_to_response')
    def test_next_url_overriden_queue_next_url(self, patched_render):

        site = EntreeSite.objects.create(pk=ENTREE['SITE_ID'])

        url = '/foo/'
        next_url = b64encode("%s:%s" % (url, calc_checksum(url, length=SHORT_CHECK) ) )

        self.mixin.entree_login(self.user, site_id=site.pk, next_url=next_url)

        args, kwargs = patched_render.call_args
        template, context = args

        assert_equals(context['next_url'], reverse('profile_edit', kwargs={'site_id': site.pk, 'next_url': next_url}))

    @patch('entree.enauth.views.render_to_response')
    def test_next_url_active_profile_passed(self, patched_render):

        site = EntreeSite.objects.create(pk=ENTREE['SITE_ID'])

        profile = SiteProfile.objects.create(user=self.user, site=site, is_active=True)

        url = '/foo/'
        next_url = b64encode("%s:%s" % (url, calc_checksum(url, length=SHORT_CHECK) ) )

        self.mixin.entree_login(self.user, site_id=site.pk, next_url=next_url)

        args, kwargs = patched_render.call_args
        template, context = args

        assert_equals(context['next_url'], url)


    @patch('entree.enauth.views.render_to_response')
    def test_token_available_in_context(self, patched_render):

        self.mixin.entree_login(self.user)

        args, kwargs = patched_render.call_args
        template, context = args

        token = LoginToken.objects.get(token_type=AUTH_TOKEN, user=self.user)
        assert_equals(context['user_token'], token.value)
Exemplo n.º 4
0
class TestAuthMixin(TestCase):
    def setUp(self):
        super(TestAuthMixin, self).setUp()
        cache.clear()

        self.user = Identity.objects.create(email='*****@*****.**')

        self.request = init_request()

        self.mixin = EntreeAuthMixin()
        self.mixin.request = self.request

    def test_auth_mixin_login_set_all_the_shit_into_session(self):
        self.mixin.entree_login(self.user)

        assert ENTREE['SESSION_KEY'] in self.request.session
        assert ENTREE['STORAGE_TOKEN_KEY'] in self.request.session

    def test_auth_mixin_login_create_login_token(self):
        self.mixin.entree_login(self.user)

        token_str = self.request.session[ENTREE['STORAGE_TOKEN_KEY']]

        token = LoginToken.objects.get(value=token_str, user=self.user)

        assert_equals(AUTH_TOKEN, token.token_type)

    def test_login_flush_sess_if_another_user_lives_in_there(self):
        mock_flush = Mock()
        alien = Identity.objects.create(email='*****@*****.**')

        self.request.session[ENTREE['SESSION_KEY']] = alien.pk
        self.request.session[SESSION_KEY] = 'foo'
        self.request.session.flush = mock_flush

        self.mixin.entree_login(self.user)

        assert_equals(True, mock_flush.called)

    def test_logout_set_anon_user_into_entree_user_prop(self):

        self.mixin.entree_logout()

        assert_equals(self.request.entree_user.__class__, AnonymousUser)

    def test_logout_sess_propss_are_deleted(self):

        self.request.session[ENTREE['SESSION_KEY']] = 'foo'
        self.request.session[ENTREE['STORAGE_TOKEN_KEY']] = 'bar'

        self.mixin.entree_logout()

        assert ENTREE['SESSION_KEY'] not in self.request.session
        assert ENTREE['STORAGE_TOKEN_KEY'] not in self.request.session

    @patch('entree.enauth.views.render_to_response')
    def test_next_url_overriden_by_inactive_profile(self, patched_render):

        site = EntreeSite.objects.create(pk=ENTREE['SITE_ID'])

        self.mixin.entree_login(self.user, site_id=site.pk)

        args, kwargs = patched_render.call_args
        template, context = args

        assert_equals(context['next_url'],
                      reverse('profile_edit', kwargs={'site_id': site.pk}))

    @patch('entree.enauth.views.render_to_response')
    def test_next_url_overriden_queue_next_url(self, patched_render):

        site = EntreeSite.objects.create(pk=ENTREE['SITE_ID'])

        url = '/foo/'
        next_url = b64encode("%s:%s" %
                             (url, calc_checksum(url, length=SHORT_CHECK)))

        self.mixin.entree_login(self.user, site_id=site.pk, next_url=next_url)

        args, kwargs = patched_render.call_args
        template, context = args

        assert_equals(
            context['next_url'],
            reverse('profile_edit',
                    kwargs={
                        'site_id': site.pk,
                        'next_url': next_url
                    }))

    @patch('entree.enauth.views.render_to_response')
    def test_next_url_active_profile_passed(self, patched_render):

        site = EntreeSite.objects.create(pk=ENTREE['SITE_ID'])

        profile = SiteProfile.objects.create(user=self.user,
                                             site=site,
                                             is_active=True)

        url = '/foo/'
        next_url = b64encode("%s:%s" %
                             (url, calc_checksum(url, length=SHORT_CHECK)))

        self.mixin.entree_login(self.user, site_id=site.pk, next_url=next_url)

        args, kwargs = patched_render.call_args
        template, context = args

        assert_equals(context['next_url'], url)

    @patch('entree.enauth.views.render_to_response')
    def test_token_available_in_context(self, patched_render):

        self.mixin.entree_login(self.user)

        args, kwargs = patched_render.call_args
        template, context = args

        token = LoginToken.objects.get(token_type=AUTH_TOKEN, user=self.user)
        assert_equals(context['user_token'], token.value)