Ejemplo n.º 1
0
def _flattenElement(element, ctx):
    """
    Use the new flattener implementation to flatten the given L{IRenderable} in
    a manner appropriate for the specified context.
    """
    if ctx.precompile:
        return element

    synchronous = []
    accumulator = []
    request = IRequest(ctx, None)  # XXX None case is DEPRECATED
    finished = deferflatten(request, element, ctx.isAttrib, True,
                            accumulator.append)

    def cbFinished(ignored):
        if synchronous is not None:
            synchronous.append(None)
        return accumulator

    def ebFinished(err):
        if synchronous is not None:
            synchronous.append(err)
        else:
            return err

    finished.addCallbacks(cbFinished, ebFinished)
    if synchronous:
        if synchronous[0] is None:
            return accumulator
        synchronous[0].raiseException()
    synchronous = None
    return finished
Ejemplo n.º 2
0
Archivo: page.py Proyecto: StetHD/nevow
def _flattenElement(element, ctx):
    """
    Use the new flattener implementation to flatten the given L{IRenderable} in
    a manner appropriate for the specified context.
    """
    if ctx.precompile:
        return element

    synchronous = []
    accumulator = []
    request = IRequest(ctx, None) # XXX None case is DEPRECATED
    finished = deferflatten(request, element, ctx.isAttrib, True, accumulator.append)
    def cbFinished(ignored):
        if synchronous is not None:
            synchronous.append(None)
        return accumulator
    def ebFinished(err):
        if synchronous is not None:
            synchronous.append(err)
        else:
            return err
    finished.addCallbacks(cbFinished, ebFinished)
    if synchronous:
        if synchronous[0] is None:
            return accumulator
        synchronous[0].raiseException()
    synchronous = None
    return finished
 def test_textNodeString(self):
     """
     An instance of L{str} is flattened with XML quoting rules if C{True} is
     passed for C{inXML}.
     """
     result = []
     finished = deferflatten(None, '"&<>', False, True, result.append)
     finished.addCallback(lambda ignored: "".join(result))
     finished.addCallback(self.assertStringEqual, '"&amp;&lt;&gt;')
     return finished
 def deferflatten(self, root, request=None):
     """
     Helper to get a string from L{deferflatten}.
     """
     result = []
     d = deferflatten(request, root, False, False, result.append)
     def cbFlattened(ignored):
         return "".join(result)
     d.addCallback(cbFlattened)
     return d
Ejemplo n.º 5
0
 def test_textNodeString(self):
     """
     An instance of L{str} is flattened with XML quoting rules if C{True} is
     passed for C{inXML}.
     """
     result = []
     finished = deferflatten(None, '"&<>', False, True, result.append)
     finished.addCallback(lambda ignored: "".join(result))
     finished.addCallback(self.assertStringEqual, '"&amp;&lt;&gt;')
     return finished
Ejemplo n.º 6
0
 def deferflatten(self, root, request=None):
     """
     Helper to get a string from L{deferflatten}.
     """
     result = []
     d = deferflatten(request, root, False, False, result.append)
     def cbFlattened(ignored):
         return "".join(result)
     d.addCallback(cbFlattened)
     return d