diff --git a/sapl/test_crud.py b/sapl/test_crud.py index cf923a625..57a48e18e 100644 --- a/sapl/test_crud.py +++ b/sapl/test_crud.py @@ -21,7 +21,22 @@ def assert_h1(res, title): assert res.html.find('h1').text == title -def test_flux_list_create_detail(app): +def assert_on_create_page(res): + assert_h1(res, 'Adicionar Comissão') + form = res.form + assert not any( + form[k].value for k in form.fields if k != 'csrfmiddlewaretoken') + + +def assert_on_detail_page(res, stub_name): + assert_h1(res, stub_name) + assert not res.forms + assert 'Editar Comissão' in res + assert 'Excluir Comissão' in res + + +@pytest.mark.parametrize("make_invalid_submit", [True, False]) +def test_flux_list_create_detail(app, make_invalid_submit): # to have a couple an option for tipo field stub_tipo = mommy.make(TipoComissao) @@ -34,15 +49,15 @@ def test_flux_list_create_detail(app): previous_objects = set(Comissao.objects.all()) # on create page - assert_h1(res, 'Adicionar Comissão') - form = res.form - assert not any( - form[k].value for k in form.fields if k != 'csrfmiddlewaretoken') + assert_on_create_page(res) - # some fields are required => validation error - res = res.form.submit() - 'Formulário inválido. O registro não foi criado.' in res - assert previous_objects == set(Comissao.objects.all()) + # test bifurcation ! + if make_invalid_submit: + # some fields are required => validation error + res = res.form.submit() + 'Formulário inválido. O registro não foi criado.' in res + assert_on_create_page(res) + assert previous_objects == set(Comissao.objects.all()) # now fill out some fields form = res.form @@ -60,7 +75,7 @@ def test_flux_list_create_detail(app): # on detail page assert 'Registro criado com sucesso!' in res - assert_h1(res, stub_name) + assert_on_detail_page(res, stub_name) [new_obj] = list(set(Comissao.objects.all()) - previous_objects) assert new_obj.nome == stub_name @@ -68,12 +83,8 @@ def test_flux_list_create_detail(app): def get_detail_page(app): stub = mommy.make(Comissao, nome='Comissão Stub') res = app.get('/comissoes/%s' % stub.id) - # on detail page - assert_h1(res, stub.nome) - assert not res.forms - assert 'Editar Comissão' in res - assert 'Excluir Comissão' in res + assert_on_detail_page(res, stub.nome) return stub, res