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 teste_durchschnittliche_ausgaben_pro_monat_withEinnahme_shouldReturnEmptyDict( self): component_under_test = Einzelbuchungen() component_under_test.add(datum('10.10.2011'), 'K', '', 10) assert component_under_test.durchschnittliche_ausgaben_pro_monat( 2011) == {}
def teste_durchschnittliche_ausgaben_pro_monat_mitNurHeute_sollteAktuellenMonatIgnorieren( self): component_under_test = Einzelbuchungen() component_under_test.add(date.today(), 'A', '', -10) assert component_under_test.durchschnittliche_ausgaben_pro_monat( date.today().year) == {}
def test_getJahresausgabenNachKategorieProzentual_withEmptyDB_shouldReturnEmptyDict( self): component_under_test = Einzelbuchungen() result = component_under_test.get_jahresausgaben_nach_kategorie_prozentual( 2015) assert result == {}
def teste_durchschnittliche_ausgaben_pro_monat_mitAngefangenemJahr_sollteDurchAnzahlDerEntsprechendenMonateTeilen( self): component_under_test = Einzelbuchungen() component_under_test.add(datum('10.8.2011'), 'B', '', -10) assert component_under_test.durchschnittliche_ausgaben_pro_monat( 2011) == { 'B': '2.00' }
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_getJahresausgabenNachKategorieProzentual_withAusgabeAußerhalbDesJahres_shouldReturnEmptyDict( self): component_under_test = Einzelbuchungen() component_under_test.add(datum('01.01.2014'), 'kategorie 1', 'some name', -10) result = component_under_test.get_jahresausgaben_nach_kategorie_prozentual( 2015) assert result == {}
def test_add(self): component_under_test = Einzelbuchungen() component_under_test.add(date.today(), 'some kategorie', 'some name', 1.54) assert len(component_under_test.content) == 1 assert component_under_test.content.Datum[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.Wert[0] == 1.54 assert component_under_test.content.Tags[0] == []
def test_getJahresausgabenNachKategorieProzentual_withOneEntry_shouldReturnKategorieWith100Percent( self): component_under_test = Einzelbuchungen() component_under_test.add(datum('01.01.2015'), 'kategorie 1', 'some name', -10) result = component_under_test.get_jahresausgaben_nach_kategorie_prozentual( 2015) assert set(result.keys()) == set(['kategorie 1']) assert result['kategorie 1'] == 100.00
def test_get_single_einzelbuchung(self): component_under_test = Einzelbuchungen() component_under_test.add(date.today(), '1kategorie', '1name', 1.54) result = component_under_test.get(0) assert result['index'] == 0 assert result['Datum'] == date.today() assert result['Name'] == '1name' assert result['Kategorie'] == '1kategorie' assert result['Wert'] == 1.54
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_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_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 __init__(self, name, ausgeschlossene_kategorien=set()): self.name = name self.dauerauftraege = Dauerauftraege() self.gemeinsamebuchungen = Gemeinsamebuchungen() self.einzelbuchungen = Einzelbuchungen() self.sparbuchungen = Sparbuchungen() self.sparkontos = Kontos() self.depotwerte = Depotwerte() self.order = Order() self.orderdauerauftrag = OrderDauerauftrag() self.depotauszuege = Depotauszuege() self.einzelbuchungen.ausgeschlossene_kategorien = ausgeschlossene_kategorien self.tainted = 0
def test_delete_shouldTaint(self): component_under_test = Einzelbuchungen() component_under_test.add(datum('1.1.2010'), date.today(), 'some kategorie', 'some name', 1.23) assert component_under_test.taint_number() == 1 component_under_test.delete(0) assert component_under_test.taint_number() == 2
def test_edit_shouldTaint(self): component_under_test = Einzelbuchungen() component_under_test.add(datum('1.1.2010'), 'some kategorie', 'some name', 1.23) assert component_under_test.taint_number() == 1 component_under_test.edit(0, datum('2.1.2010'), 'some other kategorie', 'some other name', 2.34) assert component_under_test.taint_number() == 2
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 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 _handle_request(request): all_files = all_abrechnungen() text_report_reader = TextReportReader() all_content = Einzelbuchungen() abrechnungen = [] for file in all_files: report = text_report_reader.read(''.join(file['content'])) all_content.parse(report) abrechnungen.append({ 'name': file['name'], 'content': ''.join(file['content']) }) jahre = all_content.get_jahre() zusammenfassungen = [] for jahr in sorted(jahre): year_selection = all_content.select().select_year(jahr) monate = [] for monat in range(1, 13): monate.append(year_selection.select_month(monat).count()) zusammenfassungen.append({'jahr': jahr, 'monate': monate}) context = viewcore.generate_transactional_context('uebersichtabrechnungen') context['zusammenfassungen'] = zusammenfassungen context['abrechnungen'] = abrechnungen return context
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_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_aendere_beiEinzigerEinzelbuchung(self): component_under_test = Einzelbuchungen() component_under_test.add(date.today(), 'some kategorie', 'some name', 1.54) component_under_test.edit(0, date.today(), 'some other kategorie', 'some other name', 2.65) assert len(component_under_test.content) == 1 assert component_under_test.content.Datum[0] == date.today() assert component_under_test.content.Name[0] == 'some other name' assert component_under_test.content.Kategorie[ 0] == 'some other kategorie' assert component_under_test.content.Wert[0] == 2.65
def test_sumMonthly_withDuplicatedMonths_shouldSumValues(self): component_under_test = Einzelbuchungen() component_under_test.add( datum('01.02.2017'), '', '', 5, ) component_under_test.add( datum('01.01.2017'), '', '', 20, ) component_under_test.add( datum('01.02.2017'), '', '', 10, ) result = component_under_test.select().sum_monthly() assert result == ['20.00', '15.00']
def test_get_static_content_should_filter_dynamic_content(self): component_under_test = Einzelbuchungen() component_under_test.add(datum('01.01.2012'), '1kategorie', '1name', 1) component_under_test.add(datum('02.02.2013'), '2kategorie', '2name', 2, dynamisch=True) static_content = component_under_test.get_static_content() assert len(static_content) == 1 assert static_content.Datum[0] == datum('01.01.2012') assert static_content.Kategorie[0] == '1kategorie' assert static_content.Name[0] == '1name' assert static_content.Wert[0] == 1 assert 'Dynamisch' not in static_content.columns
def test_sumMonthly_withUniqueMonths(self): component_under_test = Einzelbuchungen() component_under_test.add( datum('01.01.2017'), '', '', 20, ) component_under_test.add( datum('01.02.2017'), '', '', 10, ) result = component_under_test.select().sum_monthly() assert result == ['20.00', '10.00']
def test_sum_kategorien_monthly(self): component_under_test = Einzelbuchungen() component_under_test.add( datum('01.02.2017'), 'kat1', '', 5, ) component_under_test.add( datum('01.02.2017'), 'kat2', '', 10, ) result = component_under_test.select().sum_kategorien_monthly() assert len(result) == 1 assert len(result[2]) == 2 assert result[2]['kat1'] == '5.00' assert result[2]['kat2'] == '10.00'
def test_inject_zeroes_for_year_and_kategories_shouldInjectZeroes(self): component_under_test = Einzelbuchungen() component_under_test.add( datum('01.02.2017'), 'kat1', '', 5, ) component_under_test.add( datum('01.02.2017'), 'kat2', '', 5, ) result = component_under_test.select( ).inject_zeroes_for_year_and_kategories(2017).raw_table() assert len(result) == 26 assert datum('01.01.2017') in set(result.Datum) assert datum('01.12.2017') in set(result.Datum) assert result.Wert.sum() == 10 assert set(['kat1', 'kat2']) == set(result.Kategorie)