예제 #1
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')
예제 #2
0
    def test_getContent_withEntries_shouldReturnListOfDicts(self):
        component_under_test = Gemeinsamebuchungen()
        component_under_test.add(
            datum('1.1.2010'),
            'kategorie1',
            'name1',
            1.23,
            'person1')

        component_under_test.add(
            datum('2.2.2020'),
            'kategorie2',
            'name2',
            3.45,
            'person2')

        assert component_under_test.select().to_list() == [
            {
                'index': 0,
                'Datum': datum('01.01.2010'),
                'Kategorie': 'kategorie1',
                'Name': 'name1',
                'Person': 'person1',
                'Wert': 1.23
            },
            {
                'index': 1,
                'Datum': datum('02.02.2020'),
                'Kategorie': 'kategorie2',
                'Name': 'name2',
                'Person': 'person2',
                'Wert': 3.45
            }
        ]
예제 #3
0
    def test_drop_withMatchingIndex_shouldRemoveData(self):
        component_under_test = Gemeinsamebuchungen()
        component_under_test.add(
            datum('1.1.2010'),
            'kategorie1',
            'name1',
            1.23,
            'person1')

        component_under_test.add(
            datum('2.2.2020'),
            'kategorie2',
            'name2',
            3.45,
            'person2')

        component_under_test.drop([1])

        assert component_under_test.select().to_list() == [
            {
                'index': 0,
                'Datum': datum('01.01.2010'),
                'Kategorie': 'kategorie1',
                'Name': 'name1',
                'Person': 'person1',
                'Wert': 1.23
            }
        ]
예제 #4
0
    def teste_contextValues_withSingleEinnahmeAndSingleAusgabe(self):
        self.set_up()
        db = persisted_state.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_jahr.index(
            PostRequest({
                'date': '2010',
                'mode': ''
            }))

        assert result_context['zusammenfassung_ausgaben'] == [[
            'some kategorie', '-100.00', '#f56954'
        ]]
        assert result_context['zusammenfassung_einnahmen'] == [[
            'eine einnahme kategorie', '10.00', '#3c8dbc'
        ]]
        assert 'eine einnahme kategorie' in result_context['einnahmen']
        assert result_context['einnahmen']['eine einnahme kategorie'][
            'values'] == '[10.00]'
        assert result_context['jahre'] == [2010]
        assert result_context['selected_date'] == 2010
예제 #5
0
def test_order_typ():
    set_up()

    sparkontos = persisted_state.database_instance().sparkontos
    sparkontos.add(kontoname='demodepot1', kontotyp=sparkontos.TYP_DEPOT)

    persisted_state.database_instance().depotwerte.add('demoname', 'demoisin')
    persisted_state.database_instance().order.add(datum('01.01.2020'),
                                                  'testname', 'demodepot1',
                                                  'demoisin', 100)
    persisted_state.database_instance().orderdauerauftrag.add(
        datum('01.01.2020'),
        datum('02.02.2020'),
        name='1name',
        rhythmus='monatlich',
        depotwert='demoisin',
        konto='demodepot1',
        wert=33)
    persisted_state.database_instance().refresh()

    persisted_state.database_instance().einzelbuchungen.add(
        datum('01.01.2020'), '1', '1', 1)

    result = uebersicht_sparen.index(GetRequest())

    assert result['order_typ'] == {
        'manual': '100,00',
        'dauerauftrag': '66,00',
        'manual_raw': '100.00',
        'dauerauftrag_raw': '66.00'
    }
예제 #6
0
def test_add():
    set_up()
    assert len(persisted_state.database_instance().depotauszuege.content) == 9

    add_depotauszug.index(
        VersionedPostRequest({
            'action': 'add',
            'datum_2demokonto': rfc('01.03.2020'),
            'konto': '2demokonto',
            'wert_2demokonto_2demoisin': '100,00',
            'wert_2demokonto_3demoisin': '200,00'
        }))

    db = persisted_state.database_instance()
    assert len(db.depotauszuege.content) == 11
    buchungen = db.depotauszuege.get_by(datum('01.03.2020'), '2demokonto')
    print(buchungen)

    assert len(buchungen) == 2

    assert buchungen.Wert[9] == 100
    assert buchungen.Konto[9] == '2demokonto'
    assert buchungen.Depotwert[9] == '2demoisin'
    assert buchungen.Datum[9] == datum('01.03.2020')

    assert buchungen.Wert[10] == 200
    assert buchungen.Konto[10] == '2demokonto'
    assert buchungen.Depotwert[10] == '3demoisin'
    assert buchungen.Datum[10] == datum('01.03.2020')
예제 #7
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'
예제 #8
0
 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
예제 #9
0
def test_get_future_with_actual_dauerauftrag_should_return_empty():
    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 == []
예제 #10
0
def test_get_aktuelle_with_past_dauerauftrag_should_return_empty_list():
    component_under_test = Dauerauftraege()
    component_under_test.add(datum('01.01.2012'), datum('01.01.2012'),
                             'some kategorie', 'some name', 'some rhythmus', 1)

    result = component_under_test.aktuelle()

    assert result == []
예제 #11
0
def test_get_latest_datum_by():
    component_under_test = Depotauszuege()

    component_under_test.add(datum('01.01.2020'), 'demoisin', '1demokonto', 100)
    component_under_test.add(datum('02.01.2020'), 'demoisin', '1demokonto', 200)
    component_under_test.add(datum('03.01.2020'), 'demoisin', '2demokonto', 300)

    assert component_under_test.get_latest_datum_by('1demokonto') == datum('02.01.2020')
예제 #12
0
def test_resolve_datum():
    component_under_test = Depotauszuege()

    component_under_test.add(datum('03.01.2020'), '1isin', '1demokonto', 11)
    component_under_test.add(datum('07.01.2020'), '1isin', '2demokonto', 11)
    component_under_test.add(datum('01.01.2020'), '1isin', '3demokonto', 11)

    assert component_under_test.resolve_datum(1) == datum('03.01.2020')
예제 #13
0
    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
예제 #14
0
def test_edit_should_taint():
    component_under_test = Dauerauftraege()
    component_under_test.add(datum('1.1.2010'), date.today(), 'some kategorie',
                             'some name', 'some rhythmus', 1.23)
    assert component_under_test.taint_number() == 1
    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() == 2
예제 #15
0
def test_select_max_year():
    component_under_test = Depotauszuege()

    component_under_test.add(datum('03.01.2019'), '1isin', '1demokonto', 11)
    component_under_test.add(datum('05.01.2020'), '1isin', '1demokonto', 12)
    component_under_test.add(datum('03.01.2021'), '1isin', '1demokonto', 99)
    component_under_test.add(datum('03.01.2022'), '1isin', '1demokonto', 99)

    assert component_under_test.select_max_year(2020).get_kontostand_by('1demokonto') == 12
예제 #16
0
    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'
            }
예제 #17
0
def test_get_kontostand_by_():
    component_under_test = Depotauszuege()
    component_under_test.add(datum('01.01.2020'), '1isin', 'demokonto', 10)

    component_under_test.add(datum('02.01.2020'), '1isin', 'demokonto', 200)
    component_under_test.add(datum('02.01.2020'), '2isin', 'demokonto', 300)
    component_under_test.add(datum('02.01.2020'), '1isin', '1demokonto', 999)

    assert component_under_test.get_kontostand_by('demokonto') == 500
예제 #18
0
    def test_get_order_fuer(self):
        component_under_test = Order()

        component_under_test.add(datum('01.01.2020'), '1name', '1konto',
                                 '1depotwert', 100)
        component_under_test.add(datum('01.01.2020'), '1name', '2konto',
                                 '1depotwert', 300)

        assert component_under_test.get_order_fuer('1konto') == 100
def test_order_until_today_table_header_should_comply_order_table_header():
    component_under_test = OrderDauerauftrag()

    component_under_test.add(datum('01.01.2020'), datum('02.02.2020'),
                             'monatlich', '1name', '1konto', '1depotwert', 100)

    result = component_under_test.get_all_order_until_today()

    assert sorted(result.columns) == sorted(Order.TABLE_HEADER)
예제 #20
0
    def teste_mitUnterschiedlichenMonaten_shouldSelectNeusterMonat(self):
        self.set_up()
        db = persisted_state.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'
예제 #21
0
    def add_test_data(self):
        depotwerte = persisted_state.database_instance().depotwerte
        depotwerte.add(name='depotwert1', isin='isin1')
        depotwerte.add(name='depotwert2', isin='isin2')
        order = persisted_state.database_instance().order
        order.add(datum('12.12.2019'), 'demoname', 'demokonto', 'isin1', 100)

        depotauszuege = persisted_state.database_instance().depotauszuege
        depotauszuege.add(datum('01.01.2020'), 'isin1', 'demokonto', 90)
예제 #22
0
def test_add_should_add():
    component_under_test = Depotauszuege()

    component_under_test.add(datum('01.01.2020'), 'demoisin', 'demokonto', 100)

    assert len(component_under_test.content) == 1
    assert component_under_test.content.Datum[0] == datum('01.01.2020')
    assert component_under_test.content.Depotwert[0] == 'demoisin'
    assert component_under_test.content.Konto[0] == 'demokonto'
    assert component_under_test.content.Wert[0] == 100
예제 #23
0
    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']
예제 #24
0
    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'
예제 #25
0
    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_order_until_today_with_date_in_future_should_be_empty():
    component_under_test = OrderDauerauftrag()

    component_under_test.add(datum('01.01.3020'), datum('01.01.3021'),
                             'monatlich', 'future', '1konto', '1depotwert',
                             333)

    result = component_under_test.get_all_order_until_today()

    assert len(result) == 0
def test_order_until_today_with_invalid_dates_should_be_empty():
    component_under_test = OrderDauerauftrag()

    component_under_test.add(datum('01.01.2020'), datum('01.01.2019'),
                             'monatlich', 'invalid', '1konto', '1depotwert',
                             222)

    result = component_under_test.get_all_order_until_today()

    assert len(result) == 0
예제 #28
0
def test_get_depotwert_by():
    component_under_test = Depotauszuege()

    component_under_test.add(datum('01.01.2020'), '1isin', '1demokonto', 11)

    component_under_test.add(datum('02.01.2020'), '1isin', '1demokonto', 200)
    component_under_test.add(datum('02.01.2020'), '2isin', '1demokonto', 311)
    component_under_test.add(datum('02.01.2020'), '1isin', '2demokonto', 400)

    assert component_under_test.get_depotwert_by('1isin') == 600
예제 #29
0
    def test_select_max_year(self):
        component_under_test = Sparbuchungen()

        component_under_test.add(datum('01.01.2010'), '1name', 1, Sparbuchungen.TYP_MANUELLER_AUFTRAG, 'konto')
        component_under_test.add(datum('01.01.2011'), '1name', 1, Sparbuchungen.TYP_MANUELLER_AUFTRAG, 'konto')
        component_under_test.add(datum('01.01.2012'), '1name', 1, Sparbuchungen.TYP_MANUELLER_AUFTRAG, 'konto')
        component_under_test.add(datum('01.01.2013'), '1name', 33, Sparbuchungen.TYP_MANUELLER_AUFTRAG, 'konto')
        component_under_test.add(datum('01.01.2014'), '1name', 1, Sparbuchungen.TYP_MANUELLER_AUFTRAG, 'konto')

        assert component_under_test.select_max_year(2013).get_aufbuchungen_fuer('konto') == 36
예제 #30
0
    def test_get_aufbuchungen_fuer(self):
        component_under_test = Sparbuchungen()

        component_under_test.add(datum('01.01.2011'), '1name', 1, Sparbuchungen.TYP_AUSSCHUETTUNG, 'konto')
        component_under_test.add(datum('02.02.2012'), '2name', 200, Sparbuchungen.TYP_MANUELLER_AUFTRAG, 'konto')
        component_under_test.add(datum('03.03.2013'), '3name', -50, Sparbuchungen.TYP_MANUELLER_AUFTRAG, 'konto')
        component_under_test.add(datum('03.03.2013'), '3name', -3, Sparbuchungen.TYP_MANUELLER_AUFTRAG, 'anderes_konto')
        component_under_test.add(datum('04.04.2014'), '4name', 10, Sparbuchungen.TYP_ZINSEN, 'konto')

        assert component_under_test.get_aufbuchungen_fuer('konto') == 150