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.types.ReflectedType.fromArgument( argument, reflector=self.reflector) assert isinstance(type, reflection.types.ReflectedArray) assert len(type.native()) == 3 for i in range(0, 3): assert isinstance(type.native()[i], reflection.types.ReflectedPrimitive) assert type.native()[i].type() == "boolean"
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.types.ReflectedType.fromArgument( argument, reflector=self.reflector) assert False, "should have caused a TypeError building a mixed array" except TypeError as e: assert str(e) == "mismatched array element types"
def _pb(self): """ Get an Argument representation of the null, as defined in the drozer protocol. """ return Message.Argument(type=Message.Argument.NULL)