示例#1
0
 def runOneTest(self):
     csess = self.csess_fact()
     msg = Message.fromOpenIDArgs(csess.getRequest())
     ssess = self.ssess_fact.fromMessage(msg)
     check_secret = csess.extractSecret(
         Message.fromOpenIDArgs(ssess.answer(self.secret)))
     self.failUnlessEqual(self.secret, check_secret)
示例#2
0
 def test_fromSuccessResponse_signed(self):
     message = Message.fromOpenIDArgs({
         'sreg.nickname': 'The Mad Stork',
     })
     success_resp = DummySuccessResponse(message, {})
     sreg_resp = sreg.SRegResponse.fromSuccessResponse(success_resp)
     self.failIf(sreg_resp)
示例#3
0
 def test_fromSuccessResponse_signed(self):
     message = Message.fromOpenIDArgs({
         'sreg.nickname':'The Mad Stork',
         })
     success_resp = DummySuccessResponse(message, {})
     sreg_resp = sreg.SRegResponse.fromSuccessResponse(success_resp)
     self.failIf(sreg_resp)
示例#4
0
 def test_fromSuccessResponse_unsigned(self):
     message = Message.fromOpenIDArgs({
         'sreg.nickname': 'The Mad Stork',
     })
     success_resp = DummySuccessResponse(message, {})
     sreg_resp = sreg.SRegResponse.fromSuccessResponse(success_resp,
                                                       signed_only=False)
     self.failUnlessEqual([('nickname', 'The Mad Stork')],
                          sreg_resp.items())
示例#5
0
 def test_fromOpenIDRequestWithoutExtension(self):
     """return None for an OpenIDRequest without AX paramaters."""
     openid_req_msg = Message.fromOpenIDArgs({
         'mode': 'checkid_setup',
         'ns': OPENID2_NS,
         })
     oreq = DummyRequest(openid_req_msg)
     r = ax.FetchRequest.fromOpenIDRequest(oreq)
     self.failUnless(r is None, "%s is not None" % (r,))
def mkAssocResponse(*keys):
    """Build an association response message that contains the
    specified subset of keys. The values come from
    `association_response_values`.

    This is useful for testing for missing keys and other times that
    we don't care what the values are."""
    args = dict([(key, association_response_values[key]) for key in keys])
    return Message.fromOpenIDArgs(args)
示例#7
0
def mkAssocResponse(*keys):
    """Build an association response message that contains the
    specified subset of keys. The values come from
    `association_response_values`.

    This is useful for testing for missing keys and other times that
    we don't care what the values are."""
    args = dict([(key, association_response_values[key]) for key in keys])
    return Message.fromOpenIDArgs(args)
示例#8
0
 def test_fromOpenIDRequestWithoutExtension(self):
     """return None for an OpenIDRequest without AX paramaters."""
     openid_req_msg = Message.fromOpenIDArgs({
         'mode': 'checkid_setup',
         'ns': OPENID2_NS,
     })
     oreq = DummyRequest(openid_req_msg)
     r = ax.FetchRequest.fromOpenIDRequest(oreq)
     self.failUnless(r is None, "%s is not None" % (r, ))
示例#9
0
 def test_fromSuccessResponse_unsigned(self):
     message = Message.fromOpenIDArgs({
         'sreg.nickname':'The Mad Stork',
         })
     success_resp = DummySuccessResponse(message, {})
     sreg_resp = sreg.SRegResponse.fromSuccessResponse(success_resp,
                                                       signed_only=False)
     self.failUnlessEqual([('nickname', 'The Mad Stork')],
                          sreg_resp.items())
示例#10
0
    def test_openID1_sregNSfromArgs(self):
        args = {
            'sreg.optional': 'nickname',
            'sreg.required': 'dob',
        }

        m = Message.fromOpenIDArgs(args)

        self.failUnless(m.getArg(sreg.ns_uri_1_1, 'optional') == 'nickname')
        self.failUnless(m.getArg(sreg.ns_uri_1_1, 'required') == 'dob')
示例#11
0
 def test_openidNoRealm(self):
     openid_req_msg = Message.fromOpenIDArgs({
         'mode': 'checkid_setup',
         'ns': OPENID2_NS,
         'ns.ax': ax.AXMessage.ns_uri,
         'ax.update_url': 'http://different.site/path',
         'ax.mode': 'fetch_request',
     })
     self.failUnlessRaises(ax.AXError, ax.FetchRequest.fromOpenIDRequest,
                           DummyRequest(openid_req_msg))
示例#12
0
    def test_openID1_sregNSfromArgs(self):
        args = {
            'sreg.optional': 'nickname',
            'sreg.required': 'dob',
            }

        m = Message.fromOpenIDArgs(args)

        self.failUnless(m.getArg(sreg.ns_uri_1_1, 'optional') == 'nickname')
        self.failUnless(m.getArg(sreg.ns_uri_1_1, 'required') == 'dob')
示例#13
0
 def test_openidNoRealm(self):
     openid_req_msg = Message.fromOpenIDArgs({
         'mode': 'checkid_setup',
         'ns': OPENID2_NS,
         'ns.ax': ax.AXMessage.ns_uri,
         'ax.update_url': 'http://different.site/path',
         'ax.mode': 'fetch_request',
         })
     self.failUnlessRaises(ax.AXError,
                           ax.FetchRequest.fromOpenIDRequest,
                           DummyRequest(openid_req_msg))
示例#14
0
    def test_openidUpdateURLVerificationSuccessReturnTo(self):
        openid_req_msg = Message.fromOpenIDArgs({
            'mode': 'checkid_setup',
            'ns': OPENID2_NS,
            'return_to': 'http://example.com/realm',
            'ns.ax': ax.AXMessage.ns_uri,
            'ax.update_url': 'http://example.com/realm/update_path',
            'ax.mode': 'fetch_request',
        })

        fr = ax.FetchRequest.fromOpenIDRequest(DummyRequest(openid_req_msg))
示例#15
0
    def test_openidUpdateURLVerificationSuccessReturnTo(self):
        openid_req_msg = Message.fromOpenIDArgs({
            'mode': 'checkid_setup',
            'ns': OPENID2_NS,
            'return_to': 'http://example.com/realm',
            'ns.ax': ax.AXMessage.ns_uri,
            'ax.update_url': 'http://example.com/realm/update_path',
            'ax.mode': 'fetch_request',
            })

        fr = ax.FetchRequest.fromOpenIDRequest(DummyRequest(openid_req_msg))
示例#16
0
 def test_fromOpenIDRequestWithoutData(self):
     """return something for SuccessResponse with AX paramaters,
     even if it is the empty set."""
     openid_req_msg = Message.fromOpenIDArgs({
         'mode': 'checkid_setup',
         'realm': 'http://example.com/realm',
         'ns': OPENID2_NS,
         'ns.ax': ax.AXMessage.ns_uri,
         'ax.mode': 'fetch_request',
     })
     oreq = DummyRequest(openid_req_msg)
     r = ax.FetchRequest.fromOpenIDRequest(oreq)
     self.failUnless(r is not None)
示例#17
0
 def test_fromOpenIDRequestWithoutData(self):
     """return something for SuccessResponse with AX paramaters,
     even if it is the empty set."""
     openid_req_msg = Message.fromOpenIDArgs({
         'mode': 'checkid_setup',
         'realm': 'http://example.com/realm',
         'ns': OPENID2_NS,
         'ns.ax': ax.AXMessage.ns_uri,
         'ax.mode': 'fetch_request',
         })
     oreq = DummyRequest(openid_req_msg)
     r = ax.FetchRequest.fromOpenIDRequest(oreq)
     self.failUnless(r is not None)
示例#18
0
    def test_fromSuccessResponseWithoutExtension(self):
        """return None for SuccessResponse with no AX paramaters."""
        args = {
            'mode': 'id_res',
            'ns': OPENID2_NS,
            }
        sf = ['openid.' + i for i in args.keys()]
        msg = Message.fromOpenIDArgs(args)
        class Endpoint:
            claimed_id = 'http://invalid.'

        oreq = SuccessResponse(Endpoint(), msg, signed_fields=sf)
        r = ax.FetchResponse.fromSuccessResponse(oreq)
        self.failUnless(r is None, "%s is not None" % (r,))
示例#19
0
    def _setUpDH(self):
        sess, message = self.consumer._createAssociateRequest(
            self.endpoint, 'HMAC-SHA1', 'DH-SHA1')

        # XXX: this is testing _createAssociateRequest
        self.failUnlessEqual(self.endpoint.compatibilityMode(),
                             message.isOpenID1())

        server_sess = DiffieHellmanSHA1ServerSession.fromMessage(message)
        server_resp = server_sess.answer(self.secret)
        server_resp['assoc_type'] = 'HMAC-SHA1'
        server_resp['assoc_handle'] = 'handle'
        server_resp['expires_in'] = '1000'
        server_resp['session_type'] = 'DH-SHA1'
        return sess, Message.fromOpenIDArgs(server_resp)
示例#20
0
    def test_fromSuccessResponseWithoutExtension(self):
        """return None for SuccessResponse with no AX paramaters."""
        args = {
            'mode': 'id_res',
            'ns': OPENID2_NS,
        }
        sf = ['openid.' + i for i in args.keys()]
        msg = Message.fromOpenIDArgs(args)

        class Endpoint:
            claimed_id = 'http://invalid.'

        oreq = SuccessResponse(Endpoint(), msg, signed_fields=sf)
        r = ax.FetchResponse.fromSuccessResponse(oreq)
        self.failUnless(r is None, "%s is not None" % (r, ))
    def _setUpDH(self):
        sess, message = self.consumer._createAssociateRequest(
            self.endpoint, 'HMAC-SHA1', 'DH-SHA1')

        # XXX: this is testing _createAssociateRequest
        self.failUnlessEqual(self.endpoint.compatibilityMode(),
                             message.isOpenID1())

        server_sess = DiffieHellmanSHA1ServerSession.fromMessage(message)
        server_resp = server_sess.answer(self.secret)
        server_resp['assoc_type'] = 'HMAC-SHA1'
        server_resp['assoc_handle'] = 'handle'
        server_resp['expires_in'] = '1000'
        server_resp['session_type'] = 'DH-SHA1'
        return sess, Message.fromOpenIDArgs(server_resp)
示例#22
0
    def _doTest(self, expected_session_type, session_type_value):
        # Create a Message with just 'session_type' in it, since
        # that's all this function will use. 'session_type' may be
        # absent if it's set to None.
        args = {}
        if session_type_value is not None:
            args['session_type'] = session_type_value
        message = Message.fromOpenIDArgs(args)
        self.failUnless(message.isOpenID1())

        actual_session_type = self.consumer._getOpenID1SessionType(message)
        error_message = (
            'Returned sesion type parameter %r was expected '
            'to yield session type %r, but yielded %r' %
            (session_type_value, expected_session_type, actual_session_type))
        self.failUnlessEqual(expected_session_type, actual_session_type,
                             error_message)
    def _doTest(self, expected_session_type, session_type_value):
        # Create a Message with just 'session_type' in it, since
        # that's all this function will use. 'session_type' may be
        # absent if it's set to None.
        args = {}
        if session_type_value is not None:
            args['session_type'] = session_type_value
        message = Message.fromOpenIDArgs(args)
        self.failUnless(message.isOpenID1())

        actual_session_type = self.consumer._getOpenID1SessionType(message)
        error_message = ('Returned sesion type parameter %r was expected '
                         'to yield session type %r, but yielded %r' %
                         (session_type_value, expected_session_type,
                          actual_session_type))
        self.failUnlessEqual(
            expected_session_type, actual_session_type, error_message)
示例#24
0
    def test_fromSuccessResponseWithoutData(self):
        """return something for SuccessResponse with AX paramaters,
        even if it is the empty set."""
        args = {
            'mode': 'id_res',
            'ns': OPENID2_NS,
            'ns.ax': ax.AXMessage.ns_uri,
            'ax.mode': 'fetch_response',
            }
        sf = ['openid.' + i for i in args.keys()]
        msg = Message.fromOpenIDArgs(args)
        class Endpoint:
            claimed_id = 'http://invalid.'

        oreq = SuccessResponse(Endpoint(), msg, signed_fields=sf)
        r = ax.FetchResponse.fromSuccessResponse(oreq)
        self.failUnless(r is not None)
示例#25
0
    def test_fromSuccessResponseWithoutData(self):
        """return something for SuccessResponse with AX paramaters,
        even if it is the empty set."""
        args = {
            'mode': 'id_res',
            'ns': OPENID2_NS,
            'ns.ax': ax.AXMessage.ns_uri,
            'ax.mode': 'fetch_response',
        }
        sf = ['openid.' + i for i in args.keys()]
        msg = Message.fromOpenIDArgs(args)

        class Endpoint:
            claimed_id = 'http://invalid.'

        oreq = SuccessResponse(Endpoint(), msg, signed_fields=sf)
        r = ax.FetchResponse.fromSuccessResponse(oreq)
        self.failUnless(r is not None)
示例#26
0
    def setUp(self):
        BaseAssocTest.setUp(self)
        self.session_type = 'testing-session'

        # This must something that works for Association.fromExpiresIn
        self.assoc_type = 'HMAC-SHA1'

        self.assoc_handle = 'testing-assoc-handle'

        # These arguments should all be valid
        self.assoc_response = Message.fromOpenIDArgs({
            'expires_in': '1000',
            'assoc_handle': self.assoc_handle,
            'assoc_type': self.assoc_type,
            'session_type': self.session_type,
            'ns': OPENID2_NS,
        })

        self.assoc_session = DummyAssociationSession()

        # Make the session for the response's session type
        self.assoc_session.session_type = self.session_type
        self.assoc_session.allowed_assoc_types = [self.assoc_type]
    def setUp(self):
        BaseAssocTest.setUp(self)
        self.session_type = 'testing-session'

        # This must something that works for Association.fromExpiresIn
        self.assoc_type = 'HMAC-SHA1'

        self.assoc_handle = 'testing-assoc-handle'

        # These arguments should all be valid
        self.assoc_response = Message.fromOpenIDArgs({
            'expires_in': '1000',
            'assoc_handle':self.assoc_handle,
            'assoc_type':self.assoc_type,
            'session_type':self.session_type,
            'ns':OPENID2_NS,
            })

        self.assoc_session = DummyAssociationSession()

        # Make the session for the response's session type
        self.assoc_session.session_type = self.session_type
        self.assoc_session.allowed_assoc_types = [self.assoc_type]
示例#28
0
    def test_fromSuccessResponseWithData(self):
        name = 'ext0'
        value = 'snozzberry'
        uri = "http://willy.wonka.name/"
        args = {
            'mode': 'id_res',
            'ns': OPENID2_NS,
            'ns.ax': ax.AXMessage.ns_uri,
            'ax.update_url': 'http://example.com/realm/update_path',
            'ax.mode': 'fetch_response',
            'ax.type.'+name: uri,
            'ax.count.'+name: '1',
            'ax.value.%s.1'%name: value,
            }
        sf = ['openid.' + i for i in args.keys()]
        msg = Message.fromOpenIDArgs(args)
        class Endpoint:
            claimed_id = 'http://invalid.'

        resp = SuccessResponse(Endpoint(), msg, signed_fields=sf)
        ax_resp = ax.FetchResponse.fromSuccessResponse(resp)
        values = ax_resp.get(uri)
        self.failUnlessEqual([value], values)
示例#29
0
    def test_fromSuccessResponseWithData(self):
        name = 'ext0'
        value = 'snozzberry'
        uri = "http://willy.wonka.name/"
        args = {
            'mode': 'id_res',
            'ns': OPENID2_NS,
            'ns.ax': ax.AXMessage.ns_uri,
            'ax.update_url': 'http://example.com/realm/update_path',
            'ax.mode': 'fetch_response',
            'ax.type.' + name: uri,
            'ax.count.' + name: '1',
            'ax.value.%s.1' % name: value,
        }
        sf = ['openid.' + i for i in args.keys()]
        msg = Message.fromOpenIDArgs(args)

        class Endpoint:
            claimed_id = 'http://invalid.'

        resp = SuccessResponse(Endpoint(), msg, signed_fields=sf)
        ax_resp = ax.FetchResponse.fromSuccessResponse(resp)
        values = ax_resp.get(uri)
        self.failUnlessEqual([value], values)