Example #1
0
    def test_it(self):
        """click item2 => bubbling: node, area, document"""
        from pyramid_bubbling.api import get_bubbling

        bubbling = get_bubbling(make_request(self.config), self.item2)
        result = []
        bubbling.fire(self.item2, "click", result)
        compare(result, ['item2', 'top', 'doc'])
Example #2
0
    def test_stop(self):
        """click item2_ => bubbling: node, area[stop]"""

        from pyramid_bubbling import (
            Stop
        )
        from pyramid_bubbling.api import get_bubbling

        class StopArea(AreaWithInterface):
            pass

        def click_simple_stop(subject, result):
            click_simple(subject, result)
            return Stop

        self.config.add_bubbling_event(StopArea, click_simple_stop, "click")

        top = StopArea("stop_top", self.doc)
        item2 = NodeWithInterface("stop_item2", top)

        bubbling = get_bubbling(make_request(self.config), item2)
        result = []
        bubbling.fire(item2, "click", result)
        compare(result, ["stop_item2", "stop_top"])
Example #3
0
    config.scan("models")
    config.verify_bubbling_path(Button, [Button, Area, Document])
    config.verify_bubbling_event(Button, "click")

    def make_request():
        return DummyRequest(config.registry)

    doc = Document("1")
    area = Area("2", document=doc)
    button = Button("3", area=area)

    from pyramid_bubbling.api import get_bubbling

    request = make_request()
    bubbling = get_bubbling(request, button)

    ## click
    print("----------------click------------------------")
    result = []
    bubbling.fire(button, "click", result)

    assert result == [("button", "3"), ("area", "2"), ("document", "1")]
    print(result)
    for x in bubbling.get_ordered_event(button, "click"):
        print(x)

    ## tap
    print("----------------tap------------------------")
    result = []
    bubbling.fire(button, "tap", result)