def test_with_cc_users(self): with_sessions = _login_or_challenge(passing_decorator, allow_cc_users=True, allow_sessions=True) no_sessions = _login_or_challenge(passing_decorator, allow_cc_users=True, allow_sessions=False) for decorator in [with_sessions, no_sessions]: test = decorator(sample_view) request = _get_request(self.web_django_user) self.assertEqual(SUCCESS, test(request, self.domain_name)) request = _get_request(self.commcare_django_user) self.assertEqual(SUCCESS, test(request, self.domain_name))
def _get_test_for_web_user(self, allow_cc_users, allow_sessions, require_domain=True): web_decorator = _login_or_challenge(get_passing_decorator( self.web_django_user), allow_cc_users=allow_cc_users, allow_sessions=allow_sessions, require_domain=require_domain) return web_decorator(sample_view)
def test_no_domain_with_sessions(self): decorator = _login_or_challenge(passing_decorator, allow_cc_users=True, allow_sessions=True, require_domain=False) test = decorator(sample_view) request = _get_request(self.web_django_user) self.assertEqual(SUCCESS, test(request)) request = _get_request(self.commcare_django_user) self.assertEqual(SUCCESS, test(request))
def test_no_cc_users_with_sessions(self): # with sessions, we just assume the user is already on the request, so the decorator doesn't matter decorator = _login_or_challenge(passing_decorator, allow_cc_users=False, allow_sessions=True) test = decorator(sample_view) web_request = _get_request(self.web_django_user) mobile_request = _get_request(self.commcare_django_user) self.assertEqual(SUCCESS, test(web_request, self.domain_name)) # note: this behavior is surprising and arguably incorrect, but just documenting it here for now self.assertEqual(SUCCESS, test(mobile_request, self.domain_name))
def test_no_user_set(self): # no matter what, no user = no success for allow_cc_users in (True, False): for allow_sessions in (True, False): for require_domain in (True, False): decorator = _login_or_challenge( passing_decorator, allow_cc_users=allow_cc_users, allow_sessions=allow_sessions, require_domain=require_domain) test = decorator(sample_view) request = _get_request() self.assertForbidden(test(request, self.domain_name))