Beispiel #1
0
    def setUp(self):
        self.registro = Registro(nome="Registro teste")
        self.registro.save()

        self.transacao = Transacao(registro=self.registro,
                                   data=datetime.date.today(),
                                   descricao="Transação de teste")
        self.transacao.save()
Beispiel #2
0
class LancamentoTestCase(TestCase):
    """
    Testes do `models.Lancamento`

    """
    def setUp(self):
        self.registro = Registro(nome="Registro teste")
        self.registro.save()

        self.transacao = Transacao(registro=self.registro,
                                   data=datetime.date.today(),
                                   descricao="Transação de teste")
        self.transacao.save()

    def test_lancamento_sem_conta_dah_erro(self):
        lancamento = Lancamento(transacao=self.transacao,
                                valor=Decimal("10.00"))
        self.assertRaises(ValidationError, lambda: lancamento.save())
Beispiel #3
0
    def test_transacao_com_soma_nao_zero_nao_eh_consistente(self):
        transacao = Transacao(registro=self.registro,
                              data=datetime.date.today(),
                              descricao="Transação de teste")

        transacao.save()

        transacao.lancamentos.create(
            conta=join("gastos", "funcionarios"),
            valor=Decimal("100.00"),
        )

        transacao.lancamentos.create(
            conta=join("bens", "caixa"),
            valor=Decimal("-99.00"),
        )

        self.assertFalse(transacao.eh_consistente)
Beispiel #4
0
    def setUp(self):
        self.registro = Registro(nome="Registro teste")
        self.registro.save()

        self.transacao = Transacao(
                registro=self.registro,
                data=datetime.date.today(),
                descricao="Transação de teste"
        )
        self.transacao.save()
Beispiel #5
0
class LancamentoTestCase(TestCase):
    """
    Testes do `models.Lancamento`

    """

    def setUp(self):
        self.registro = Registro(nome="Registro teste")
        self.registro.save()

        self.transacao = Transacao(
                registro=self.registro,
                data=datetime.date.today(),
                descricao="Transação de teste"
        )
        self.transacao.save()

    def test_lancamento_sem_conta_dah_erro(self):
        lancamento = Lancamento(transacao=self.transacao, valor=Decimal("10.00"))
        self.assertRaises(ValidationError, lambda: lancamento.save())
Beispiel #6
0
    def test_transacao_com_soma_nao_zero_nao_eh_consistente(self):
        transacao = Transacao(
                registro=self.registro,
                data=datetime.date.today(),
                descricao="Transação de teste"
        )

        transacao.save()

        transacao.lancamentos.create(
            conta=join("gastos", "funcionarios"),
            valor=Decimal("100.00"),
        )

        transacao.lancamentos.create(
            conta=join("bens", "caixa"),
            valor=Decimal("-99.00"),
        )

        self.assertFalse(transacao.eh_consistente)
Beispiel #7
0
    def test_transacao_faz_novo_balanco(self):
        transacao = Transacao(
                registro=self.registro,
                data=datetime.date.today(),
                descricao="Transação de teste"
        )

        transacao.save()

        transacao.lancamentos.create(
            conta=join("gastos", "funcionarios"),
            valor=Decimal("100.00"),
        )

        transacao.lancamentos.create(
            conta=join("bens", "caixa"),
            valor=Decimal("-100.00"),
        )

        self.assertEqual(self.registro.balanco(join("gastos", "funcionarios")), Decimal("100"))
        self.assertEqual(self.registro.balanco(join("bens", "caixa")), Decimal("-100"))
Beispiel #8
0
    def test_transacao_faz_novo_balanco(self):
        transacao = Transacao(registro=self.registro,
                              data=datetime.date.today(),
                              descricao="Transação de teste")

        transacao.save()

        transacao.lancamentos.create(
            conta=join("gastos", "funcionarios"),
            valor=Decimal("100.00"),
        )

        transacao.lancamentos.create(
            conta=join("bens", "caixa"),
            valor=Decimal("-100.00"),
        )

        self.assertEqual(self.registro.balanco(join("gastos", "funcionarios")),
                         Decimal("100"))
        self.assertEqual(self.registro.balanco(join("bens", "caixa")),
                         Decimal("-100"))
Beispiel #9
0
class ContasTestCase(TestCase):
    """
    Testes do `core.Contas`

    """

    def setUp(self):
        self.registro = Registro(nome="Registro teste")
        self.registro.save()

        self.transacao = Transacao(
                registro=self.registro,
                data=datetime.date.today(),
                descricao="Transação de teste"
        )
        self.transacao.save()

    def teste_com_uma_conta(self):
        self.transacao.lancamentos.create(
                valor=Decimal("10.00"),
                conta=join("gastos", "funcionarios"),
        )

        self.transacao.lancamentos.create(
                valor=Decimal("10.00"),
                conta=join("gastos", "fornecedores", "açougue"),
        )

        self.transacao.lancamentos.create(
                valor=Decimal("10.00"),
                conta=join("gastos", "fornecedores", "mercado"),
        )

        self.transacao.lancamentos.create(
                valor=Decimal("10.00"),
                conta=join("gastos", "fornecedores", "vinho"),
        )

        self.transacao.lancamentos.create(
                valor=Decimal("10.00"),
                conta=join("gastos", "impostos"),
        )

        self.transacao.lancamentos.create(
                valor=Decimal("-50.00"),
                conta=join("bens", "caixa"),
        )

        hierarquia_do_registro = Contas()
        hierarquia_do_registro.digerir_registro(self.registro)


        hierarquia_das_transacoes = Contas()
        hierarquia_das_transacoes.digerir_transacoes([self.transacao])


        hierarquia_dos_lancamentos = Contas()
        hierarquia_dos_lancamentos.digerir_lancamentos(self.transacao.lancamentos.all())

        self.assertEqual(hierarquia_do_registro, hierarquia_das_transacoes)
        self.assertEqual(hierarquia_das_transacoes, hierarquia_dos_lancamentos)

        resultado_correto = {
            u"gastos": {
                u"fornecedores": {
                    u"mercado": {},
                    u"açougue": {},
                    u"vinho": {},
                },

                u"impostos": {},

                u"funcionarios": {},

            },

            u"bens": {
                u"caixa": {},
            },
        }

        self.assertEqual(hierarquia_dos_lancamentos.contas, resultado_correto)
Beispiel #10
0
class ContasTestCase(TestCase):
    """
    Testes do `core.Contas`

    """
    def setUp(self):
        self.registro = Registro(nome="Registro teste")
        self.registro.save()

        self.transacao = Transacao(registro=self.registro,
                                   data=datetime.date.today(),
                                   descricao="Transação de teste")
        self.transacao.save()

    def teste_com_uma_conta(self):
        self.transacao.lancamentos.create(
            valor=Decimal("10.00"),
            conta=join("gastos", "funcionarios"),
        )

        self.transacao.lancamentos.create(
            valor=Decimal("10.00"),
            conta=join("gastos", "fornecedores", "açougue"),
        )

        self.transacao.lancamentos.create(
            valor=Decimal("10.00"),
            conta=join("gastos", "fornecedores", "mercado"),
        )

        self.transacao.lancamentos.create(
            valor=Decimal("10.00"),
            conta=join("gastos", "fornecedores", "vinho"),
        )

        self.transacao.lancamentos.create(
            valor=Decimal("10.00"),
            conta=join("gastos", "impostos"),
        )

        self.transacao.lancamentos.create(
            valor=Decimal("-50.00"),
            conta=join("bens", "caixa"),
        )

        hierarquia_do_registro = Contas()
        hierarquia_do_registro.digerir_registro(self.registro)

        hierarquia_das_transacoes = Contas()
        hierarquia_das_transacoes.digerir_transacoes([self.transacao])

        hierarquia_dos_lancamentos = Contas()
        hierarquia_dos_lancamentos.digerir_lancamentos(
            self.transacao.lancamentos.all())

        self.assertEqual(hierarquia_do_registro, hierarquia_das_transacoes)
        self.assertEqual(hierarquia_das_transacoes, hierarquia_dos_lancamentos)

        resultado_correto = {
            u"gastos": {
                u"fornecedores": {
                    u"mercado": {},
                    u"açougue": {},
                    u"vinho": {},
                },
                u"impostos": {},
                u"funcionarios": {},
            },
            u"bens": {
                u"caixa": {},
            },
        }

        self.assertEqual(hierarquia_dos_lancamentos.contas, resultado_correto)