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
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)
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)