Exemplo n.º 1
0
    def sendAndReceive(self, factory):
        self.sent = Message()
        self.sent.ParseFromString(factory.setId(555).setSessionId("555").build())

        if len(self.reply_with) > 0:
            return self.reply_with.pop(0)
        else:
            return None
Exemplo n.º 2
0
    def testItShouldBuildNullFromArgument(self):
        argument = Message.Argument(type=Message.Argument.NULL)

        type = reflection.ReflectedType.fromArgument(argument,
                                                     reflector=self.reflector)

        assert isinstance(type, reflection.ReflectedNull)
Exemplo n.º 3
0
    def buildErrorReply(self, error_message):
        message = Message(id=555, type=Message.REFLECTION_RESPONSE)
        message.reflection_response.session_id = "555"
        message.reflection_response.status = Message.ReflectionResponse.ERROR
        message.reflection_response.errormessage = error_message

        return message
Exemplo n.º 4
0
    def buildObjectReply(self, ref):
        message = Message(id=555, type=Message.REFLECTION_RESPONSE)
        message.reflection_response.session_id = "555"
        message.reflection_response.status = Message.ReflectionResponse.SUCCESS
        message.reflection_response.result.type = Message.Argument.OBJECT
        message.reflection_response.result.object.reference = ref

        return message
Exemplo n.º 5
0
    def testItShouldBuildStringFromArgument(self):
        argument = Message.Argument(type=Message.Argument.STRING)
        argument.string = "Hello, World!"

        type = reflection.ReflectedType.fromArgument(argument,
                                                     reflector=self.reflector)

        assert isinstance(type, reflection.ReflectedString)
        assert type.native() == "Hello, World!"
Exemplo n.º 6
0
    def testItShouldBuildObjectFromArgument(self):
        argument = Message.Argument(type=Message.Argument.OBJECT)
        argument.object.reference = 987654321

        type = reflection.ReflectedType.fromArgument(argument,
                                                     reflector=self.reflector)

        assert isinstance(type, reflection.ReflectedObject)
        assert type._ref == 987654321
Exemplo n.º 7
0
    def buildPrimitiveReply(self, type, int):
        message = Message(id=555, type=Message.REFLECTION_RESPONSE)
        message.reflection_response.session_id = "555"
        message.reflection_response.status = Message.ReflectionResponse.SUCCESS
        message.reflection_response.result.type = Message.Argument.PRIMITIVE
        message.reflection_response.result.primitive.type = type
        message.reflection_response.result.primitive.int = int

        return message
Exemplo n.º 8
0
    def testItShouldBuildPrimitiveFromArgument(self):
        argument = Message.Argument(type=Message.Argument.PRIMITIVE)
        argument.primitive.type = Message.Primitive.BOOL
        argument.primitive.bool = True

        type = reflection.ReflectedType.fromArgument(argument,
                                                     reflector=self.reflector)

        assert isinstance(type, reflection.ReflectedPrimitive)
        assert type.type() == "boolean"
        assert type.native() == True
Exemplo n.º 9
0
class MockReflector(reflection.Reflector):

    def __init__(self, session):
        reflection.Reflector.__init__(self, session)

        self.sent = None
        self.reply_with = []

    def buildErrorReply(self, error_message):
        message = Message(id=555, type=Message.REFLECTION_RESPONSE)
        message.reflection_response.session_id = "555"
        message.reflection_response.status = Message.ReflectionResponse.ERROR
        message.reflection_response.errormessage = error_message

        return message

    def buildObjectReply(self, ref):
        message = Message(id=555, type=Message.REFLECTION_RESPONSE)
        message.reflection_response.session_id = "555"
        message.reflection_response.status = Message.ReflectionResponse.SUCCESS
        message.reflection_response.result.type = Message.Argument.OBJECT
        message.reflection_response.result.object.reference = ref

        return message

    def buildPrimitiveReply(self, type, int):
        message = Message(id=555, type=Message.REFLECTION_RESPONSE)
        message.reflection_response.session_id = "555"
        message.reflection_response.status = Message.ReflectionResponse.SUCCESS
        message.reflection_response.result.type = Message.Argument.PRIMITIVE
        message.reflection_response.result.primitive.type = type
        message.reflection_response.result.primitive.int = int

        return message

    def buildSuccessReply(self):
        message = Message(id=555, type=Message.REFLECTION_RESPONSE)
        message.reflection_response.session_id = "555"
        message.reflection_response.status = Message.ReflectionResponse.SUCCESS

        return message

    def replyWith(self, message):
        self.reply_with.append(message)

    def sendAndReceive(self, factory):
        self.sent = Message()
        self.sent.ParseFromString(factory.setId(555).setSessionId("555").build())

        if len(self.reply_with) > 0:
            return self.reply_with.pop(0)
        else:
            return None
Exemplo n.º 10
0
    def testItShouldBuildObjectArrayFromArgument(self):
        argument = Message.Argument(type=Message.Argument.ARRAY)
        argument.array.type = Message.Array.OBJECT

        for i in range(0, 3):
            element = argument.array.element.add(type=Message.Argument.OBJECT)
            element.object.reference = i

        type = reflection.ReflectedType.fromArgument(argument,
                                                     reflector=self.reflector)

        assert isinstance(type, reflection.ReflectedArray)
        assert len(type.native()) == 3

        for i in range(0, 3):
            assert isinstance(type.native()[i], reflection.ReflectedObject)
            assert type.native()[i]._ref == i
Exemplo n.º 11
0
    def testItShouldBuildStringArrayFromArgument(self):
        argument = Message.Argument(type=Message.Argument.ARRAY)
        argument.array.type = Message.Array.STRING

        for i in range(0, 3):
            element = argument.array.element.add(type=Message.Argument.STRING)
            element.string = "Hello, World! (" + str(i) + ")"

        type = reflection.ReflectedType.fromArgument(argument,
                                                     reflector=self.reflector)

        assert isinstance(type, reflection.ReflectedArray)
        assert len(type.native()) == 3

        for i in range(0, 3):
            assert isinstance(type.native()[i], reflection.ReflectedString)
            assert type.native()[i].native(
            ) == "Hello, World! (" + str(i) + ")"
Exemplo n.º 12
0
    def testItShouldBuildPrimitiveArrayFromArgument(self):
        argument = Message.Argument(type=Message.Argument.ARRAY)
        argument.array.type = Message.Array.PRIMITIVE

        for i in range(0, 3):
            element = argument.array.element.add(
                type=Message.Argument.PRIMITIVE)
            element.primitive.type = Message.Primitive.BOOL
            element.primitive.bool = True

        type = reflection.ReflectedType.fromArgument(argument,
                                                     reflector=self.reflector)

        assert isinstance(type, reflection.ReflectedArray)
        assert len(type.native()) == 3

        for i in range(0, 3):
            assert isinstance(type.native()[i], reflection.ReflectedPrimitive)
            assert type.native()[i].type() == "boolean"
Exemplo n.º 13
0
    def testItShouldRaiseTypeErrorIfArrayIsMixedTypes(self):
        argument = Message.Argument(type=Message.Argument.ARRAY)
        argument.array.type = Message.Array.PRIMITIVE

        for i in range(0, 3):
            element = argument.array.element.add(
                type=Message.Argument.PRIMITIVE)
            element.primitive.type = Message.Primitive.BOOL
            element.primitive.bool = True
        for i in range(0, 3):
            element = argument.array.element.add(type=Message.Argument.OBJECT)
            element.object.reference = i

        try:
            type = reflection.ReflectedType.fromArgument(
                argument, reflector=self.reflector)

            assert False, "should have caused a TypeError building a mixed array"
        except TypeError as e:
            assert e.message == "mismatched array element types"
Exemplo n.º 14
0
    def testItShouldShowTheMessageTypeAsSystemResponse(self):
        message = Message(id=1,
                          type=Message.SYSTEM_RESPONSE).SerializeToString()

        assert frame.Frame(2, len(message),
                           message).messageType() == "SYSTEM_RESPONSE"
Exemplo n.º 15
0
    def testItShouldShowTheMessageTypeAsReflectionResponse(self):
        message = Message(
            id=1, type=Message.REFLECTION_RESPONSE).SerializeToString()

        assert frame.Frame(2, len(message),
                           message).messageType() == "REFLECTION_RESPONSE"
Exemplo n.º 16
0
    def testItShouldExtractTheMessage(self):
        message = Message(id=1,
                          type=Message.REFLECTION_REQUEST).SerializeToString()

        assert isinstance(
            frame.Frame(2, len(message), message).message(), Message)
Exemplo n.º 17
0
    def testItShouldBuildFrameFromMessage(self):
        message = Message(id=1,
                          type=Message.REFLECTION_REQUEST).SerializeToString()

        assert frame.Frame.fromMessage(message).length == len(message)
Exemplo n.º 18
0
    def buildSuccessReply(self):
        message = Message(id=555, type=Message.REFLECTION_RESPONSE)
        message.reflection_response.session_id = "555"
        message.reflection_response.status = Message.ReflectionResponse.SUCCESS

        return message