(app, client)
| 840 | |
| 841 | |
| 842 | def 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): |
nothing calls this directly
no test coverage detected