Exemplo n.º 1
0
def test_get_api_definitions(request_definition_builder):
    class Service(object):
        builder = request_definition_builder

    assert dict(helpers.get_api_definitions(Service)) == {
        "builder": request_definition_builder
    }
Exemplo n.º 2
0
 def __call__(self, class_or_builder):
     if inspect.isclass(class_or_builder):
         builders = helpers.get_api_definitions(class_or_builder)
         for _, builder in builders:
             builder.method_handler_builder.add_annotation(self)
     else:
         class_or_builder.method_handler_builder.add_annotation(self)
     return class_or_builder
Exemplo n.º 3
0
def test_get_api_definitions_from_parent(request_definition_builder):
    class Parent(object):
        builder = request_definition_builder

    class Child(Parent):
        other_builder = request_definition_builder

    assert dict(helpers.get_api_definitions(Child)) == {
        "other_builder": request_definition_builder
    }
Exemplo n.º 4
0
    def __call__(self, class_or_builder, **kwargs):
        if self._is_consumer_class(class_or_builder):
            builders = helpers.get_api_definitions(class_or_builder)
            builders = filter(self._is_relevant_for_builder, builders)

            for name, b in builders:
                self(b, is_class=True)
                helpers.set_api_definition(class_or_builder, name, b)
        elif isinstance(class_or_builder, interfaces.RequestDefinitionBuilder):
            self._modify_request_definition(class_or_builder, kwargs)
        return class_or_builder
Exemplo n.º 5
0
    def __call__(self, class_or_builder):
        if self._is_consumer_class(class_or_builder):
            builders = helpers.get_api_definitions(class_or_builder)
            builders = filter(self._is_relevant_for_builder, builders)

            for name, b in builders:
                b.method_handler_builder.add_annotation(self, is_class=True)
                helpers.set_api_definition(class_or_builder, name, b)
        elif isinstance(class_or_builder, interfaces.RequestDefinitionBuilder):
            class_or_builder.method_handler_builder.add_annotation(self)
        return class_or_builder
Exemplo n.º 6
0
 def _build(self, call_builder):
     definition_builders = helpers.get_api_definitions(self)
     for attribute_name, definition_builder in definition_builders:
         caller = call_builder.build(self, definition_builder)
         setattr(self, attribute_name, caller)