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 }
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
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 }
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
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
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)