def test_descuadre(self): ap1 = APU() ap1.euros = 1000 ap2 = APU() ap2.euros = -500 ap3 = APU() ap3.euros = -500 asi = Asiento(apuntes=[ap1, ap2, ap3]) self.assertEqual(0, asi.descuadre) ap3.euros = -300 self.assertEqual(200, asi.descuadre)
def test_cuadra(self): ap1 = APU() ap1.euros = 1000 ap2 = APU() ap2.euros = -500 ap3 = APU() ap3.euros = -500 asi = Asiento(apuntes=[ap1, ap2, ap3]) self.assertEqual(True, asi.cuadra()) ap3.euros = -300 self.assertEqual(False, asi.cuadra())
def test_numerador(self): e = ContaSOL(primer_asiento=10) apu = APU(euros=5, cuenta='4', fecha=date(2010, 2, 1), concepto="Apu a") apu2 = APU(euros=5, cuenta='4', fecha=date(2010, 2, 1), concepto="Apu a") asi = Asiento(apuntes=[apu, apu2]) asi.vincular(e, autonum=True) self.assertEqual(10, apu.asiento)
def test_add_rm(self): ap1 = APU() ap1.euros = 1000 ap2 = APU() ap2.euros = -500 ap3 = APU() ap3.euros = -500 asi = Asiento(apuntes=[ap1, ap2, ap3]) asi.rm(ap3) self.assertRaises(ValueError, asi.rm, ap3) asi.add(ap3) self.assertRaises(ValueError, asi.add, ap3)
def test_generacion_xls(self): e = EntornoSOL() ap1 = APU() ap1.euros = 1000 ap2 = APU() ap2.euros = -500 ap3 = APU() ap3.euros = -500 asi = Asiento(apuntes=[ap1, ap2, ap3]) asi.vincular(e) f = StringIO() e.generar_xls_table('APU', f)
def test_eventos(self): def on_bind(tipo, entorno, obj): obj.manipulated = 1 def on_unbind(tipo, entorno, obj): obj.manipulated = 2 e = EntornoSOL() e.on_pre_bind += on_bind e.on_pre_unbind += on_unbind ap1 = APU() ap1.manipulated = 0 ap1.euros = 1000 e.bind(ap1) self.assertEqual(1, ap1.manipulated) e.unbind(ap1) self.assertEqual(ap1.manipulated, 2)
def test_sorted(self): apus = self.apuntes() s = APU.sort_table(apus) orden_esperado = ('primer', 'segundo', 'tercer', 'cuarto', 'quinto', 'sexto', 'septimo') for ap, q in zip(apus, orden_esperado): t = 'El %s apunte' % q self.assertEqual(ap.concepto, t)
def test_renumera(self): ap1 = APU() ap1.euros = 1000 ap2 = APU() ap2.euros = -500 ap3 = APU() ap3.euros = -300 asi = Asiento(apuntes=[ap1, ap2, ap3]) asi.renumera() self.assertEquals([1, 2, 3], [ap.orden for ap in asi.apuntes]) asi2 = Asiento(apuntes=[ap2, ap3, ap1]) asi2.renumera() self.assertEquals([1, 2, 3], [ap.orden for ap in asi2.apuntes]) self.assertEquals([3, 1, 2], [ap.orden for ap in asi.apuntes])
def test_asiento(self): e = EntornoSOL() ap1 = APU() ap1.euros = 1000 ap2 = APU() ap2.euros = -500 ap3 = APU() ap3.euros = -500 asi = Asiento(apuntes=[ap1, ap2, ap3]) asi.vincular(e) self.assertListEqual([e, e, e], [ap1.entorno, ap2.entorno, ap3.entorno]) asi.desvincular() self.assertListEqual([None, None, None], [ap1.entorno, ap2.entorno, ap3.entorno])
def test_autocierre(self): e = ContaSOL() e.on_pre_bind += auto_crea_cuentas AutoAcumulador(e) for c, importe in (('43000000', 1000), ('70000000', -1000)): apu = APU(euros=importe, cuenta=c, fecha=date(2010, 2, 1), concepto="Apu a") e.bind(apu) for c, importe in (('41000000', -500), ('60000000', 500)): apu = APU(euros=importe, cuenta=c, fecha=date(2010, 2, 2), concepto="Apu b") e.bind(apu) for c, importe in (('43000000', -1000), ('57000000', 1000)): apu = APU(euros=importe, cuenta=c, fecha=date(2010, 3, 2), concepto="Apu c") e.bind(apu) for c, importe in (('41000000', 500), ('57000000', -500)): apu = APU(euros=importe, cuenta=c, fecha=date(2010, 4, 2), concepto="Apu d") e.bind(apu) print_diario(e.get_tabla_elemento('APU')) reg = e.auto_cierre('reg', date(2010, 12, 31), '12900001', 'Regularizar', selector=solo_pyg) asi = reg[0] self.assertEqual(-500, asi.apuntes[-1].euros) asi.vincular(e) cie = e.auto_cierre('cie', date(2010, 12, 31), '90000001', 'Cierre') self.assertEqual(2, len(cie[0].apuntes)) cie[0].vincular(e) print_diario(e.get_tabla_elemento('APU'))
def apuntes(self): apus = [ (date(2014, 1, 4), 2, 1, 'El sexto apunte'), (date(2014, 1, 4), 2, 1, 'El septimo apunte'), (date(2014, 1, 2), 3, 1, 'El cuarto apunte'), (date(2014, 1, 2), 3, 2, 'El quinto apunte'), (date(2014, 1, 1), 1, 1, 'El primer apunte'), (date(2014, 1, 1), 1, 2, 'El segundo apunte'), (date(2014, 1, 1), 1, 3, 'El tercer apunte'), ] apus2 = [] for ap in apus: apu = APU() apu.fecha = ap[0] apu.asiento = ap[1] apu.orden = ap[2] apu.concepto = ap[3] apus2.append(apu) return apus2
def test_reordena(self): ap1 = APU() ap1.euros = 1000 ap2 = APU() ap2.euros = -500 ap3 = APU() ap3.euros = -300 asi = Asiento(apuntes=[ap1, ap2, ap3]) asi.renumera() ap2.orden = 100 asi.reordena() self.assertEquals([1000, -300, -500], [ap.euros for ap in asi.apuntes]) ap1.orden = 50 asi.reordena() self.assertEquals([-300, 1000, -500], [ap.euros for ap in asi.apuntes])
def crea_apu(**kwargs): apu = APU() for k, v in kwargs.iteritems(): setattr(apu, k, v) return apu