def test_edit_pagamento_movimentar_caixa_true_get_post_request(self): # Criar lancamento com data futura (sem movimentos) data_pagamento_futura = datetime.strptime('01/01/2020', "%d/%m/%Y").date() obj = Saida.objects.create(status='0', movimentar_caixa=False, valor_total='120.00', valor_liquido='120.00', data_pagamento=data_pagamento_futura) url = reverse('financeiro:editarpagamentoview', kwargs={'pk': obj.pk}) response = self.client.get(url) self.assertEqual(response.status_code, 200) data = response.context['form'].initial replace_none_values_in_dictionary(data) data['descricao'] = 'Pagamento editado' data['valor_total'] = locale.format(u'%.2f', Decimal(data['valor_total']), 1) data['valor_liquido'] = locale.format(u'%.2f', Decimal(data['valor_liquido']), 1) data['movimentar_caixa'] = True response = self.client.post(url, data, follow=True) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'financeiro/lancamento/lancamento_list.html') # Verificar se movimento foi criado corretamente movimento_editado = MovimentoCaixa.objects.get( data_movimento=data_pagamento_futura) self.assertEqual(movimento_editado.saidas, Decimal('120.00'))
def test_edit_pagamento_com_data_pagamento_diferente_e_movimento_criado_get_post_request( self): # Buscar saida com movimento de caixa e data_pagamento # Modificar a data_pagamento atual, para buscar outro movimento ou # criar um novo obj = Saida.objects.filter(status='0', movimentar_caixa=True).exclude( Q(movimento_caixa__isnull=True) | Q(data_pagamento__isnull=True) | Q(data_pagamento=datetime.strptime( '06/07/2017', "%d/%m/%Y").date())).order_by('pk').last() # Data aleatoria, que nao possui movimentos de caixa nova_data_pagamento = datetime.strptime('01/01/2030', "%d/%m/%Y").date() url = reverse('financeiro:editarpagamentoview', kwargs={'pk': obj.pk}) response = self.client.get(url) self.assertEqual(response.status_code, 200) data = response.context['form'].initial novo_valor_saidas = Decimal(data['valor_liquido']) + Decimal('20.00') replace_none_values_in_dictionary(data) data['descricao'] = 'Pagamento editado' data['valor_total'] = locale.format( u'%.2f', Decimal(data['valor_total']) + Decimal('20.00'), 1) data['valor_liquido'] = locale.format( u'%.2f', Decimal(data['valor_liquido']) + Decimal('20.00'), 1) data['data_pagamento'] = nova_data_pagamento.strftime('%d/%m/%Y') response = self.client.post(url, data, follow=True) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'financeiro/lancamento/lancamento_list.html') # Verificar se movimento foi criado corretamente movimento_editado = MovimentoCaixa.objects.get( data_movimento=nova_data_pagamento) self.assertEqual(movimento_editado.saidas, novo_valor_saidas)
def test_edit_pagamento_movimentar_caixa_false_get_post_request(self): # Buscar saida com movimento de caixa e data_pagamento obj = Saida.objects.filter(status='0', movimentar_caixa=True).exclude( Q(movimento_caixa__isnull=True) | Q(data_pagamento__isnull=True) | Q(data_pagamento=datetime.strptime( '06/07/2017', "%d/%m/%Y").date())).order_by('pk').last() url = reverse('financeiro:editarpagamentoview', kwargs={'pk': obj.pk}) response = self.client.get(url) self.assertEqual(response.status_code, 200) data = response.context['form'].initial replace_none_values_in_dictionary(data) data['descricao'] = 'Pagamento editado' data['valor_total'] = locale.format(u'%.2f', Decimal(data['valor_total']), 1) data['valor_liquido'] = locale.format(u'%.2f', Decimal(data['valor_liquido']), 1) data['movimentar_caixa'] = False response = self.client.post(url, data, follow=True) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'financeiro/lancamento/lancamento_list.html') # Verificar se movimento foi removido do lancamento obj.refresh_from_db() self.assertIsNone(obj.movimento_caixa)
def test_edit_pagamento_com_data_pagamento_igual_get_post_request(self): # Buscar saida com movimento de caixa e data_pagamento # Nao modificar a data_pagamento atual, para buscar o mesmo movimento obj = Saida.objects.filter(status='0', movimentar_caixa=True).exclude( Q(movimento_caixa__isnull=True) | Q(data_pagamento__isnull=True)).order_by('pk').last() valor_saldo_final_antigo = obj.movimento_caixa.saldo_final data_movimento = obj.movimento_caixa.data_movimento url = reverse('financeiro:editarpagamentoview', kwargs={'pk': obj.pk}) response = self.client.get(url) self.assertEqual(response.status_code, 200) data = response.context['form'].initial replace_none_values_in_dictionary(data) data['descricao'] = 'Pagamento editado' data['valor_total'] = locale.format( u'%.2f', Decimal(data['valor_total']) + Decimal('20.00'), 1) data['valor_liquido'] = locale.format( u'%.2f', Decimal(data['valor_liquido']) + Decimal('20.00'), 1) response = self.client.post(url, data, follow=True) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'financeiro/lancamento/lancamento_list.html') # Verificar se movimento de caixa foi atualizado movimento_editado = MovimentoCaixa.objects.get( data_movimento=data_movimento) self.assertEqual(valor_saldo_final_antigo - Decimal('20.00'), movimento_editado.saldo_final)
def test_edit_produto_get_post_request(self): # Buscar objeto qualquer obj = Produto.objects.order_by('pk').last() url = reverse('cadastro:editarprodutoview', kwargs={'pk': obj.pk}) response = self.client.get(url) self.assertEqual(response.status_code, 200) data = response.context['form'].initial replace_none_values_in_dictionary(data) data['inf_adicionais'] = 'Produto editado.' response = self.client.post(url, data, follow=True) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'cadastro/produto/produto_list.html')
def test_edit_conta_receber_get_post_request(self): # Buscar objeto qualquer obj = Entrada.objects.filter(status='1').order_by('pk').last() url = reverse('financeiro:editarcontareceberview', kwargs={'pk': obj.pk}) response = self.client.get(url) self.assertEqual(response.status_code, 200) data = response.context['form'].initial replace_none_values_in_dictionary(data) data['descricao'] = 'Conta Receber editada' response = self.client.post(url, data, follow=True) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'financeiro/lancamento/lancamento_list.html')
def test_edit_natureza_operacao_get_post_request(self): # Buscar objeto qualquer obj = NaturezaOperacao.objects.order_by('pk').last() url = reverse('fiscal:editarnaturezaoperacaoview', kwargs={'pk': obj.pk}) response = self.client.get(url) self.assertEqual(response.status_code, 200) data = response.context['form'].initial replace_none_values_in_dictionary(data) data['descricao'] = 'Natureza Operacao Editada.' response = self.client.post(url, data, follow=True) self.assertEqual(response.status_code, 200) self.assertTemplateUsed( response, 'fiscal/natureza_operacao/natureza_operacao_list.html')
def test_edit_pedido_compra_get_post_request(self): # Buscar objeto qualquer obj = PedidoCompra.objects.order_by('pk').last() url = reverse('compras:editarpedidocompraview', kwargs={'pk': obj.pk}) response = self.client.get(url) self.assertEqual(response.status_code, 200) data = response.context['form'].initial data.update(COMPRA_FORMSET_DATA) data.update(response.context['produtos_form'].initial[0]) replace_none_values_in_dictionary(data) data['observacoes'] = 'Pedido editado.' if data['orcamento'] is None: data['orcamento'] = '' response = self.client.post(url, data, follow=True) self.assertEqual(response.status_code, 200) self.assertTemplateUsed( response, 'compras/pedido_compra/pedido_compra_list.html')
def test_edit_nota_fiscal_entrada_get_post_request(self): # Buscar objeto qualquer obj = NotaFiscalEntrada.objects.order_by('pk').last() url = reverse('fiscal:editarnotafiscalentradaview', kwargs={'pk': obj.pk}) response = self.client.get(url) self.assertEqual(response.status_code, 200) data = response.context['form'].initial data['dhemi'] = timezone.now().strftime('%d/%m/%Y %H:%M') data['natop'] = data['natop'] + ' (Nota fiscal editada)' replace_none_values_in_dictionary(data) response = self.client.post(url, data, follow=True) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'fiscal/nota_fiscal/nota_fiscal_list.html') # Assert form invalido data['natop'] = '' response = self.client.post(url, data, follow=True) self.assertFormError(response, 'form', 'natop', 'Este campo é obrigatório.')