def test_with_credentials(self): r"""Test how is_oauth_user handles credentials""" env = self._make_environ() error_msg = 'The current user must be a consumer acting on behalf of ' \ 'a user' # The user is assumed to be coming through OAuth if # repoze.what.credentials - repoze.what.userid holds a userid # repoze.who.identity - repoze.who.consumerkey holds a valid consumer # key and a valid access token exists for user and consumer # Note that validity of userid is not checked! # First try the userid only env['repoze.what.credentials']['repoze.what.userid'] = 'Some User' p = is_oauth_user() self.eval_unmet_predicate(p, env, error_msg) # Then try the consumer key only del env['repoze.what.credentials']['repoze.what.userid'] env['repoze.who.identity']['repoze.who.consumerkey'] = 'Some Consumer' self.eval_unmet_predicate(p, env, error_msg) # Now try both env['repoze.what.credentials']['repoze.what.userid'] = 'Some User' # And all is ok now self.eval_met_predicate(p, env) # We can ask for a particular user p = is_oauth_user(userid='Some User') self.eval_met_predicate(p, env) p = is_oauth_user(userid='Some Other User') self.eval_unmet_predicate(p, env, error_msg) # We can ask for a particular consumer p = is_oauth_user(consumer_key='Some Consumer') self.eval_met_predicate(p, env) p = is_oauth_user(consumer_key='Some Other Consumer') self.eval_unmet_predicate(p, env, error_msg) # Or both p = is_oauth_user(userid='Some User', consumer_key='Some Consumer') self.eval_met_predicate(p, env) p = is_oauth_user(userid='Some Other User', consumer_key='Some Consumer') self.eval_unmet_predicate(p, env, error_msg) p = is_oauth_user(userid='Some User', consumer_key='Some Other Consumer') self.eval_unmet_predicate(p, env, error_msg) # Consumers as users are not accepted (only 3-legged flows, please) p = is_oauth_user() env['repoze.what.credentials']['repoze.what.userid'] = \ 'consumer:Some User' env['repoze.who.identity']['repoze.who.consumerkey'] = 'Some Consumer' self.eval_unmet_predicate(p, env, error_msg)
def test_without_credentials(self): r"""Test how is_oauth_user behaves without credentials""" env = self._make_environ() p = is_oauth_user() self.eval_unmet_predicate(p, env, 'The current user must be a ' \ 'consumer acting on behalf of a user')