Exemplo n.º 1
0
    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'
Exemplo n.º 2
0
    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'
Exemplo n.º 3
0
    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
Exemplo n.º 6
0
    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
Exemplo n.º 15
0
 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'
Exemplo n.º 24
0
    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
Exemplo n.º 26
0
    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')
Exemplo n.º 27
0
    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
Exemplo n.º 28
0
    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']
Exemplo n.º 30
0
    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'