MCPcopy Create free account
hub / github.com/pallets/flask / test_nested_callback_order

Function test_nested_callback_order

tests/test_blueprints.py:842–919  ·  view source on GitHub ↗
(app, client)

Source from the content-addressed store, hash-verified

840
841
842def test_nested_callback_order(app, client):
843 parent = flask.Blueprint("parent", __name__)
844 child = flask.Blueprint("child", __name__)
845
846 @app.before_request
847 def app_before1():
848 flask.g.setdefault("seen", []).append("app_1")
849
850 @app.teardown_request
851 def app_teardown1(e=None):
852 assert flask.g.seen.pop() == "app_1"
853
854 @app.before_request
855 def app_before2():
856 flask.g.setdefault("seen", []).append("app_2")
857
858 @app.teardown_request
859 def app_teardown2(e=None):
860 assert flask.g.seen.pop() == "app_2"
861
862 @app.context_processor
863 def app_ctx():
864 return dict(key="app")
865
866 @parent.before_request
867 def parent_before1():
868 flask.g.setdefault("seen", []).append("parent_1")
869
870 @parent.teardown_request
871 def parent_teardown1(e=None):
872 assert flask.g.seen.pop() == "parent_1"
873
874 @parent.before_request
875 def parent_before2():
876 flask.g.setdefault("seen", []).append("parent_2")
877
878 @parent.teardown_request
879 def parent_teardown2(e=None):
880 assert flask.g.seen.pop() == "parent_2"
881
882 @parent.context_processor
883 def parent_ctx():
884 return dict(key="parent")
885
886 @child.before_request
887 def child_before1():
888 flask.g.setdefault("seen", []).append("child_1")
889
890 @child.teardown_request
891 def child_teardown1(e=None):
892 assert flask.g.seen.pop() == "child_1"
893
894 @child.before_request
895 def child_before2():
896 flask.g.setdefault("seen", []).append("child_2")
897
898 @child.teardown_request
899 def child_teardown2(e=None):

Callers

nothing calls this directly

Calls 3

register_blueprintMethod · 0.95
register_blueprintMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected