import pytest from crispy_forms.layout import HTML, Div, Field, Fieldset, Layout, Submit only_uni_form = pytest.mark.only("uni_form") only_bootstrap = pytest.mark.only("bootstrap", "bootstrap3", "bootstrap4") only_bootstrap3 = pytest.mark.only("bootstrap3") only_bootstrap4 = pytest.mark.only("bootstrap4") @pytest.fixture def advanced_layout(): return Layout( Div( Div(Div("email")), Div(Field("password1")), Submit("save", "save"), Fieldset( "legend", "first_name", HTML("extra text"), ), Layout("password2"), ), "last_name", ) @pytest.fixture(autouse=True, params=("uni_form", "bootstrap", "bootstrap3", "bootstrap4")) def template_packs(request, settings): check_template_pack(request.node, request.param) settings.CRISPY_TEMPLATE_PACK = request.param def check_template_pack(node, template_pack): mark = node.get_closest_marker("only") if mark: if template_pack not in mark.args: pytest.skip("Requires %s template pack" % " or ".join(mark.args))