def test_widget_municipio_form_alterar_cadastrador(client):
    """
    Testa o uso do widget ModelSelect2 no campo municipio no form de
    alterar cadastrador
    """

    form = AlterarCadastradorForm()
    assert isinstance(form['municipio'].field.widget, ModelSelect2)
def test_url_widget_municipio_form_alterar_cadastrador(client):
    """
    Testa url usada pelo widget ModelSelect2 no campo municipio no
    form de alterar cadastrador
    """

    form = AlterarCadastradorForm()
    municipio_url = reverse('gestao:cidade_chain')
    assert form['municipio'].field.widget.url == municipio_url
def test_campos_form_altera_cadastrador(client):
    """
    Testa a presença dos campos "CPF", "uf", e "Municipio" no formulário para
    alterar o cadastrador de uma adesão.
    """

    form = AlterarCadastradorForm()
    fields = ("cpf_usuario", "estado", "municipio", "data_publicacao_acordo")

    assert set(form.Meta.fields) == set(fields)
def test_save_alterar_cadastrador_form_sem_municipio(plano_trabalho):
    """
    Testa form de alteração de cadastrador no caso que não existe municipío
    """

    estado = mommy.make('Uf')
    cidade = mommy.make('Cidade', uf=estado)
    new_user = mommy.make('Usuario', user__username='******')

    data = {
        'cpf_usuario': new_user.user.username,
        'estado': estado.codigo_ibge,
        'municipio': cidade.id
    }
    form = AlterarCadastradorForm(data=data)
    form.is_valid()
    sistema = form.save()

    assert sistema.cadastrador == new_user
def test_url_widget_estado_form_alterar_cadastrador(client):
    """
    Testa url usada pelo widget ModelSelect2 no campo estado no form
    de alterar cadastrador
    """

    form = AlterarCadastradorForm()
    uf_url = reverse('gestao:uf_chain')

    assert form['estado'].field.widget.url == uf_url
def test_save_alterar_cadastrador_form_com_sistemacultura(plano_trabalho):
    """
    Método save do form AlterarCadastradorForm altera as informações necessárias,
    quando um ente fedarado já possui um SistemaCultura associado
    """
    cidade = mommy.make('Cidade')
    municipio = mommy.make('Municipio', cidade=cidade, estado=cidade.uf)
    user = mommy.make('Usuario', municipio=municipio)
    new_user = mommy.make('Usuario', user__username='******')

    mommy.make('SistemaCultura',
               cadastrador=user,
               uf=municipio.estado,
               cidade=municipio.cidade)
    data = {
        'cpf_usuario': new_user.user.username,
        'estado': municipio.estado.codigo_ibge,
        'municipio': municipio.cidade.id
    }
    form = AlterarCadastradorForm(data=data)
    form.is_valid()
    form.save()

    municipio.refresh_from_db()

    assert municipio.usuario == new_user