def test_editCallFromUeberischt_presetValuesCorrect(self): self.set_up() db().dauerauftraege.add(datum('10.10.2010'), datum('10.10.2011'), '0kategorie', '0name', 'monatlich', 10) context = adddauerauftrag.index( PostRequest({ 'action': 'edit', 'edit_index': '0' })) assert context['approve_title'] == 'Dauerauftrag aktualisieren' preset = context['default_item'] assert preset['Name'] == '0name' assert preset['Startdatum'] == rfc('10.10.2010') assert preset['Endedatum'] == rfc('10.10.2011') assert preset['Kategorie'] == '0kategorie' assert preset['Wert'] == '10,00' assert preset['typ'] == 'Einnahme' db().dauerauftraege.add(datum('10.10.2015'), datum('10.10.2015'), '0kategorie', '0name', 'monatlich', -10) context = adddauerauftrag.handle_request( PostRequest({ 'action': 'edit', 'edit_index': '1' })) preset = context['default_item'] assert preset['Startdatum'] == rfc('10.10.2015') assert preset['Wert'] == '10,00' assert preset['typ'] == 'Ausgabe'
def test_set_kategorien_with_ausgeschlossene_kategoerien_should_hide_ausgeschlossene_kategorien( self): self.set_up() viewcore.database_instance().einzelbuchungen.add( datum('20.01.1990'), 'JaEins', 'SomeTitle', -10) viewcore.database_instance().einzelbuchungen.add( datum('20.01.1990'), 'NeinEins', 'SomeTitle', -10) viewcore.database_instance().einzelbuchungen.add( datum('20.01.1990'), 'JaZwei', 'SomeTitle', -10) configuration.index( PostRequest({ 'action': 'set_ausgeschlossene_kategorien', 'ausgeschlossene_kategorien': 'NeinEins' })) requester.INSTANCE = RequesterStub( {'https://test.test/setkategorien.php': ''}) context = import_data.index( PostRequest({ 'action': 'set_kategorien', 'email': '', 'server': 'test.test', 'password': '' })) assert requester.instance().data_of_request( 'https://test.test/setkategorien.php' )[0]['kategorien'] == 'JaEins,JaZwei'
def test_edit_dauerauftrag_ausgabe_to_einnahme(self): self.set_up() adddauerauftrag.index( VersionedPostRequest({ 'action': 'add', 'startdatum': rfc('1.1.2017'), 'endedatum': rfc('6.1.2017'), 'kategorie': 'Essen', 'typ': 'Ausgabe', 'rhythmus': 'monatlich', 'name': 'testname', 'wert': '2,00' })) adddauerauftrag.index( VersionedPostRequest({ 'action': 'add', 'edit_index': '0', 'startdatum': rfc('2.1.2017'), 'endedatum': rfc('5.1.2017'), 'kategorie': 'Essen', 'typ': 'Einnahme', 'rhythmus': 'monatlich', 'name': 'testname', 'wert': '2,50' })) assert len(db().dauerauftraege.content) == 1 assert db().dauerauftraege.content.Wert[0] == float('2.50') assert db().dauerauftraege.content.Name[0] == 'testname' assert db().dauerauftraege.content.Kategorie[0] == 'Essen' assert db().dauerauftraege.content.Startdatum[0] == datum('2.1.2017') assert db().dauerauftraege.content.Endedatum[0] == datum('5.1.2017')
def teste_mitMehrAusgabenAlsEinnahmen(self): self.set_up() db = viewcore.database_instance() db.einzelbuchungen.add(datum('10.10.2010'), 'some kategorie', 'some name', -100) db.einzelbuchungen.add(datum('10.10.2010'), 'eine einnahme kategorie', 'some name', 10) result_context = uebersicht_monat.index( PostRequest({'date': '2010_10'})) assert result_context['gesamt'] == '-100.00' assert result_context['gesamt_einnahmen'] == '10.00' assert result_context['einnahmen'] == [('eine einnahme kategorie', '10.00', '3c8dbc')] assert result_context['einnahmen_labels'] == [ 'eine einnahme kategorie' ] assert result_context['einnahmen_data'] == ['10.00'] assert result_context['ausgaben'] == [('some kategorie', '-100.00', 'f56954')] assert result_context['ausgaben_labels'] == ['some kategorie'] assert result_context['ausgaben_data'] == ['100.00']
def teste_refresh_shouldAddEinzelbuchungenVonDauerauftrag(self): component_under_test = Database('test_database') component_under_test.dauerauftraege.add(datum('10.01.2010'), datum('11.03.2010'), '', '', 'monatlich', 20) component_under_test.refresh() assert len(component_under_test.einzelbuchungen.content) == 3
def test_get_future_withActualDauerauftrag_shouldReturnEmptyList(self): component_under_test = Dauerauftraege() component_under_test.add(datum('01.01.2012'), datum('01.01.2100'), 'some kategorie', 'some name', 'some rhythmus', 1) result = component_under_test.future() assert result == []
def test_edit_shouldTaint(self): component_under_test = Einzelbuchungen() component_under_test.add(datum('1.1.2010'), 'some kategorie', 'some name', 1.23) component_under_test.de_taint() assert component_under_test.taint_number() == 0 component_under_test.edit(0, datum('2.1.2010'), 'some other kategorie', 'some other name', 2.34) assert component_under_test.taint_number() == 1
def test_get_einzelbuchungen_shouldReturnListSortedBy_Datum(self): component_under_test = Einzelbuchungen() component_under_test.add(datum('01.01.2012'), '1kategorie', '1name', 1) component_under_test.add(datum('01.01.2011'), '1kategorie', '1name', 1) component_under_test.add(datum('01.01.2013'), '1kategorie', '1name', 1) assert component_under_test.get_all().Datum[0].year == 2011 assert component_under_test.get_all().Datum[1].year == 2012 assert component_under_test.get_all().Datum[2].year == 2013
def teste_durchschnittliche_ausgaben_pro_monat_mitNurLetztemMonat_sollteAusgabenDurchEinsTeilen( self): component_under_test = Einzelbuchungen() component_under_test.add(datum('10.8.2011'), 'A', '', -10) assert component_under_test.durchschnittliche_ausgaben_pro_monat( 2011, today=datum('10.9.2011')) == { 'A': '10.00' }
def teste_durchschnittliche_ausgaben_pro_monat_withMatchingAndClosedYear_shouldReturnMonthlyPart( self): component_under_test = Einzelbuchungen() component_under_test.add(datum('10.10.2010'), 'K', '', -10) component_under_test.add(datum('10.10.2011'), 'K', '', -12) assert component_under_test.durchschnittliche_ausgaben_pro_monat( 2011) == { 'K': "1.00" }
def test_group_by_kategorie_shouldGroupValues(self): component_under_test = Einzelbuchungen() component_under_test.add(datum('20.01.1990'), 'A', '', -10) component_under_test.add(datum('20.01.1990'), 'A', '', -10) component_under_test.add(datum('20.01.1990'), 'B', '', 8) assert component_under_test.select().group_by_kategorie().Wert.tolist( ) == [-20, 8] assert component_under_test.select().group_by_kategorie().index.tolist( ) == ['A', 'B']
def test_get_einzelbuchungen_shouldReturnListSortedBy_Datum_Kategorie_Name( self): component_under_test = Einzelbuchungen() component_under_test.add(datum('01.01.2011'), '1kategorie', '1name', 1) component_under_test.add(datum('01.01.2011'), '1kategorie', '3name', 1) component_under_test.add(datum('01.01.2011'), '1kategorie', '2name', 1) assert component_under_test.get_all().Name[0] == '1name' assert component_under_test.get_all().Name[1] == '2name' assert component_under_test.get_all().Name[2] == '3name'
def test_aendere_beiVollerDatenbank(self): component_under_test = Einzelbuchungen() component_under_test.add(datum('01.01.2017'), '3kategorie', '3name', 1.54) component_under_test.add(datum('02.01.2017'), '2kategorie', '2name', 1.54) component_under_test.add(datum('03.01.2017'), '1kategorie', '1name', 1.54) assert component_under_test.content.Datum[0] == datum('01.01.2017') component_under_test.edit(0, datum('15.01.2017'), 'some other kategorie', 'some other name', 2.65) assert len(component_under_test.content) == 3 assert set(component_under_test.content.Name) == set( ['1name', '2name', 'some other name']) assert set(component_under_test.content.Datum) == set( [datum('02.01.2017'), datum('03.01.2017'), datum('15.01.2017')]) changed_row = component_under_test.content[ component_under_test.content.Datum == datum('15.01.2017')] changed_row.reset_index(drop=True, inplace=True) assert changed_row.Name[0] == 'some other name' assert changed_row.Kategorie[0] == 'some other kategorie' assert changed_row.Wert[0] == 2.65
def test_get_einzelbuchungen_shouldReturnListSortedBy_Datum_Kategorie_Name_Wert( self): component_under_test = Einzelbuchungen() component_under_test.add(datum('01.01.2011'), '1kategorie', '1name', 1) component_under_test.add(datum('01.01.2011'), '1kategorie', '1name', 10) component_under_test.add(datum('01.01.2011'), '1kategorie', '1name', 5) assert component_under_test.get_all().Wert[0] == 1 assert component_under_test.get_all().Wert[1] == 5 assert component_under_test.get_all().Wert[2] == 10
def test_edit_shouldTaint(self): component_under_test = Dauerauftraege() component_under_test.add(datum('1.1.2010'), date.today(), 'some kategorie', 'some name', 'some rhythmus', 1.23) component_under_test.de_taint() assert component_under_test.taint_number() == 0 component_under_test.edit(0, datum('2.1.2010'), datum('3.1.2010'), 'some other kategorie', 'some other name', 'some other rhythmus', 2.34) assert component_under_test.taint_number() == 1
def teste_mitUnterschiedlichenMonaten_shouldSelectNeusterMonat(self): self.set_up() db = viewcore.database_instance() db.einzelbuchungen.add(datum('10.10.2010'), 'some kategorie', 'some name', -100) db.einzelbuchungen.add(datum('10.10.2011'), 'eine einnahme kategorie', 'some name', 10) result_context = uebersicht_monat.index(GetRequest()) assert result_context['selected_date'] == '2011_10'
def test_injectZeros_shouldInjectZeroes(self): component_under_test = Einzelbuchungen() select = component_under_test.select() assert len(select.content) == 0 select = select.inject_zeros_for_year(2017) assert len(select.content) == 12 assert select.content.loc[0].Datum == datum('01.01.2017') assert select.content.loc[11].Datum == datum('01.12.2017') assert select.content.Wert.sum() == 0
def test_abrechnen_shouldPrintFileContent(self): self.set_up() db = viewcore.database_instance() db.gemeinsamebuchungen.add(datum('17.03.2017'), 'some kategorie', 'some name', -10, viewcore.name_of_partner()) viewcore.stub_today_with(datum('01.01.2010')) abrechnungs_text = db.abrechnen() viewcore.reset_viewcore_stubs() assert abrechnungs_text == self.abrechnung
def teste_durchschnittliche_ausgaben_pro_monat_shouldReturnMonthlyPart( self): component_under_test = Einzelbuchungen() component_under_test.add(datum('10.10.2010'), 'K', '', -10) component_under_test.add(datum('10.10.2011'), 'B', '', -12) component_under_test.add(datum('10.10.2011'), 'A', '', -24) assert component_under_test.durchschnittliche_ausgaben_pro_monat( 2011) == { 'A': "2.00", 'B': '1.00' }
def test_german_datum(self): self.set_up() dauerauftraege = viewcore.database_instance().dauerauftraege dauerauftraege.add(datum('01.01.2011'), datum('01.01.2011'), '', '11', 'monatlich', 1) result = uebersicht_dauerauftrag.index(GetRequest()) result_dauerauftrag = result['dauerauftraege'][ 'Vergangene Daueraufträge'][0] assert result_dauerauftrag['Startdatum'] == '01.01.2011' assert result_dauerauftrag['Endedatum'] == '01.01.2011'
def test_schliesse_kategorien_aus_einnahmen(self): component_under_test = Einzelbuchungen() component_under_test.ausgeschlossene_kategorien = set(['NeinEins']) component_under_test.add(datum('20.01.1990'), 'JaEins', 'SomeTitle', 10) component_under_test.add(datum('20.01.1990'), 'NeinEins', 'SomeTitle', 10) component_under_test.add(datum('20.01.1990'), 'JaZwei', 'SomeTitle', 10) assert component_under_test.get_kategorien_einnahmen( hide_ausgeschlossene_kategorien=True) == set(['JaEins', 'JaZwei'])
def test_edit_einzelbuchung_shouldRefreshSortingOfEinzelbuchungen(self): component_under_test = Einzelbuchungen() component_under_test.add(datum('01.01.2012'), '1kategorie', '1name', 1) component_under_test.add(datum('01.01.2011'), '1kategorie', '1name', 1) component_under_test.add(datum('01.01.2013'), '1kategorie', '1name', 1) component_under_test.edit(0, datum('01.01.2020'), '1kategorie', '1name', 1) assert component_under_test.get_all().Datum[0].year == 2012 assert component_under_test.get_all().Datum[1].year == 2013 assert component_under_test.get_all().Datum[2].year == 2020
def test_abrechnen_shouldAddEinzelbuchungen(self): self.set_up() db = viewcore.database_instance() db.gemeinsamebuchungen.add(datum('17.03.2017'), 'some kategorie', 'some name', 10, viewcore.name_of_partner()) db.abrechnen() assert len(db.einzelbuchungen.content) == 1 uebertragene_buchung = db.einzelbuchungen.get(0) assert uebertragene_buchung['Name'] == 'some name' assert uebertragene_buchung['Datum'] == datum('17.03.2017') assert uebertragene_buchung['Kategorie'] == 'some kategorie' assert uebertragene_buchung['Wert'] == '5.00'
def test_add(self): component_under_test = Dauerauftraege() component_under_test.add(datum('1.1.2010'), date.today(), 'some kategorie', 'some name', 'some rhythmus', 1.23) assert len(component_under_test.content) == 1 assert component_under_test.content.Startdatum[0] == datum('1.1.2010') assert component_under_test.content.Endedatum[0] == date.today() assert component_under_test.content.Name[0] == 'some name' assert component_under_test.content.Kategorie[0] == 'some kategorie' assert component_under_test.content.Rhythmus[0] == 'some rhythmus' assert component_under_test.content.Wert[0] == 1.23
def test_getJahresausgabenNachKategorieProzentual_withTwoEntrys_shouldReturnResult( self): component_under_test = Einzelbuchungen() component_under_test.add(datum('01.01.2015'), 'kategorie 1', 'some name', -7.5) component_under_test.add(datum('01.01.2015'), 'kategorie 2', 'some name', -2.5) result = component_under_test.get_jahresausgaben_nach_kategorie_prozentual( 2015) assert set(result.keys()) == set(['kategorie 1', 'kategorie 2']) assert result['kategorie 1'] == 75.00 assert result['kategorie 2'] == 25.00
def test_edit_dauerauftrag_should_only_fire_once(self): self.set_up() adddauerauftrag.index( VersionedPostRequest({ 'action': 'add', 'startdatum': rfc('1.1.2017'), 'endedatum': rfc('6.1.2017'), 'kategorie': 'Essen', 'typ': 'Ausgabe', 'rhythmus': 'monatlich', 'name': 'testname', 'wert': '2,00' })) next_id = request_handler.current_key() adddauerauftrag.index( PostRequest({ 'action': 'add', 'ID': next_id, 'edit_index': '0', 'startdatum': rfc('2.1.2017'), 'endedatum': rfc('5.1.2017'), 'kategorie': 'Essen', 'typ': 'Ausgabe', 'rhythmus': 'monatlich', 'name': 'testname', 'wert': '2,50' })) adddauerauftrag.index( PostRequest({ 'action': 'add', 'ID': next_id, 'edit_index': '0', 'startdatum': rfc('2.1.2017'), 'endedatum': rfc('5.1.2017'), 'kategorie': 'overwritten', 'typ': 'Ausgabe', 'rhythmus': 'overwritten', 'name': 'overwritten', 'wert': '0,00' })) assert len(db().dauerauftraege.content) == 1 assert db().dauerauftraege.content.Wert[0] == -1 * float('2.50') assert db().dauerauftraege.content.Name[0] == 'testname' assert db().dauerauftraege.content.Kategorie[0] == 'Essen' assert db().dauerauftraege.content.Startdatum[0] == datum('2.1.2017') assert db().dauerauftraege.content.Endedatum[0] == datum('5.1.2017')
def test_get_future_withFutureDauerauftrag_shouldReturnDauerauftrag(self): component_under_test = Dauerauftraege() component_under_test.add(datum('01.01.2100'), datum('01.01.2100'), 'some kategorie', 'some name', 'some rhythmus', 1) result = component_under_test.future() assert len(result) == 1 assert result[0]['Startdatum'] == datum('01.01.2100') assert result[0]['Endedatum'] == datum('01.01.2100') assert result[0]['Kategorie'] == 'some kategorie' assert result[0]['Name'] == 'some name' assert result[0]['Rhythmus'] == 'some rhythmus' assert result[0]['Wert'] == 1
def test_get(self): component_under_test = Dauerauftraege() component_under_test.add(datum('1.1.2010'), date.today(), 'some kategorie', 'some name', 'some rhythmus', 1.23) result = component_under_test.get(0) assert len(component_under_test.content) == 1 assert result['Startdatum'] == datum('1.1.2010') assert result['Endedatum'] == date.today() assert result['Name'] == 'some name' assert result['Kategorie'] == 'some kategorie' assert result['Rhythmus'] == 'some rhythmus' assert result['Wert'] == 1.23
def test_delete(self): self.set_up() dauerauftraege = viewcore.database_instance().dauerauftraege dauerauftraege.add(datum('01.01.2011'), datum('01.01.2011'), '', '11', 'monatlich', 1) dauerauftraege.add(datum('01.01.2011'), datum('01.01.2011'), '', '22', 'monatlich', 1) uebersicht_dauerauftrag.index( PostRequest({ 'action': 'delete', 'delete_index': '1' })) assert len(dauerauftraege.content) == 1 assert dauerauftraege.content.Name.tolist() == ['11']
def test_edit_ausgabe(self): self.set_up() addgemeinsam.index( VersionedPostRequest({ 'action': 'add', 'date': rfc('1.1.2017'), 'kategorie': 'Essen', 'name': 'testname', 'person': 'testperson', 'wert': '2,00' })) addgemeinsam.index( PostRequest({ 'action': 'add', 'ID': request_handler.current_key(), 'edit_index': '0', 'date': rfc('5.1.2017'), 'kategorie': 'Essen', 'name': 'testname', 'person': 'testperson2', 'wert': '2,50' })) testdb = viewcore.database_instance() assert testdb.gemeinsamebuchungen.content.Wert[0] == -1 * float('2.50') assert testdb.gemeinsamebuchungen.content.Name[0] == 'testname' assert testdb.gemeinsamebuchungen.content.Kategorie[0] == 'Essen' assert testdb.gemeinsamebuchungen.content.Datum[0] == datum('5.1.2017') assert testdb.gemeinsamebuchungen.content.Person[0] == 'testperson2'