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'])
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"])
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)