Ejemplo n.º 1
0
    def lookupRenderMethod(self, name):
        """
        @return: a renderer.
        """
        if name in self._renderers:
            wrapped = self._renderers[name]

            @modified("plated render wrapper", wrapped)
            def renderWrapper(request: IRequest, tag: Tag, *args: Any,
                              **kw: Any) -> Any:
                return _call(self._boundInstance, wrapped, request, tag, *args,
                             **kw)

            return renderWrapper
        if ":" not in name:
            raise MissingRenderMethod(self, name)
        slot, type = name.split(":", 1)

        def renderList(request, tag):
            for item in self.slot_data[slot]:
                yield tag.fillSlots(item=_extra_types(item))

        types = {
            "list": renderList,
        }
        if type in types:
            return types[type]
        else:
            raise MissingRenderMethod(self, name)
Ejemplo n.º 2
0
 def lookupRenderMethod(self, name):
     # type: (str) -> NoReturn
     """
     Form renderers don't supply any render methods, so this just always
     raises L{MissingRenderMethod}.
     """
     raise MissingRenderMethod(self, name)
Ejemplo n.º 3
0
 def lookupRenderMethod(self, name):
     """
     Look up and return the named render method.
     """
     method = renderer.get(self, name, None)
     if method is None:
         raise MissingRenderMethod(self, name)
     return method
Ejemplo n.º 4
0
    def lookupRenderMethod(self, name):
        """
        @return: a renderer.
        """
        if ":" not in name:
            raise MissingRenderMethod(self, name)
        slot, type = name.split(":", 1)

        def renderList(request, tag):
            for item in self.slot_data[slot]:
                yield tag.fillSlots(item=_extra_types(item))
        types = {
            "list": renderList,
        }
        if type in types:
            return types[type]
        else:
            raise MissingRenderMethod(self, name)
Ejemplo n.º 5
0
 def lookupRenderMethod(
     self, name: str
 ) -> Callable[[Optional[IRequest], "Tag"], "Flattenable"]:
     """
     Look up and return the named render method.
     """
     method = renderer.get(self, name, None)
     if method is None:
         raise MissingRenderMethod(self, name)
     return method
Ejemplo n.º 6
0
 def test_missingRenderMethodRepr(self):
     """
     A L{MissingRenderMethod} instance can be repr()'d without error.
     """
     class PrettyReprElement(Element):
         def __repr__(self):
             return 'Pretty Repr Element'
     s = repr(MissingRenderMethod(PrettyReprElement(),
                                  'expectedMethod'))
     self.assertIn('Pretty Repr Element', s)
     self.assertIn('expectedMethod', s)
Ejemplo n.º 7
0
    def test_missingRenderMethodRepr(self):
        """
        A L{MissingRenderMethod} instance can be repr()'d without error.
        """
        class PrettyReprElement(Element):
            def __repr__(self) -> str:
                return "Pretty Repr Element"

        s = repr(MissingRenderMethod(PrettyReprElement(), "expectedMethod"))
        self.assertIn("Pretty Repr Element", s)
        self.assertIn("expectedMethod", s)