def test_optionen(self):
        self.set_up()

        context = uebersicht_monat.abrechnen(
            PostRequest({
                'date': '2011_9',
                'einnahmen': 'einnahmen'
            }))
        self.contains_only_header(context['abrechnungstext'],
                                  '---Einnahmen---')
        context = uebersicht_monat.abrechnen(
            PostRequest({
                'date': '2011_9',
                'ausgaben': 'ausgaben'
            }))
        self.contains_only_header(context['abrechnungstext'], '---Ausgaben---')
        context = uebersicht_monat.abrechnen(
            PostRequest({
                'date':
                '2011_9',
                'zusammenfassung_einnahmen':
                'zusammenfassung_einnahmen'
            }))
        self.contains_only_header(context['abrechnungstext'], 'Einnahmen ')
        context = uebersicht_monat.abrechnen(
            PostRequest({
                'date': '2011_9',
                'zusammenfassung_ausgaben': 'zusammenfassung_ausgaben'
            }))
        self.contains_only_header(context['abrechnungstext'], 'Ausgaben ')
Пример #2
0
 def test_add_should_only_fire_once(self):
     self.set_up()
     next_id = request_handler.current_key()
     addgemeinsam.index(
         PostRequest({
             'action': 'add',
             'ID': next_id,
             'date': rfc('1.1.2017'),
             'kategorie': 'Essen',
             'name': 'testname',
             'person': 'testperson',
             'wert': '2,00'
         }))
     addgemeinsam.index(
         PostRequest({
             'action': 'add',
             'ID': next_id,
             'date': rfc('1.1.2017'),
             'kategorie': 'overwritten',
             'name': 'overwritten',
             'person': 'overwritten',
             'wert': '0,00'
         }))
     testdb = viewcore.database_instance()
     assert testdb.gemeinsamebuchungen.content.Wert[0] == -1 * float('2.00')
     assert testdb.gemeinsamebuchungen.content.Name[0] == 'testname'
     assert testdb.gemeinsamebuchungen.content.Kategorie[0] == 'Essen'
     assert testdb.gemeinsamebuchungen.content.Datum[0] == datum('1.1.2017')
     assert testdb.gemeinsamebuchungen.content.Person[0] == 'testperson'
    def test_add_ausgabe_should_only_fire_once(self):
        self.set_up()
        request_key = request_handler.current_key()

        addausgabe.index(
            PostRequest({
                'action': 'add',
                'ID': request_key,
                'date': rfc('1.1.2017'),
                'kategorie': 'Essen',
                'name': 'testname',
                'wert': '2,00'
            }))

        addausgabe.index(
            PostRequest({
                'action': 'add',
                'ID': request_key,
                'date': rfc('1.1.2017'),
                'kategorie': 'overwritten',
                'name': 'overwritten',
                'wert': '0,00'
            }))

        testdb = database_instance()
        assert len(testdb.einzelbuchungen.content) == 1
        assert testdb.einzelbuchungen.content.Wert[0] == -1 * float('2.00')
        assert testdb.einzelbuchungen.content.Name[0] == 'testname'
        assert testdb.einzelbuchungen.content.Kategorie[0] == 'Essen'
        assert testdb.einzelbuchungen.content.Datum[0] == datum('1.1.2017')
Пример #4
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'
Пример #5
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'
Пример #6
0
    def test_gemeinsamImport_withUnpassendenKategorie_shouldImportValueAndRequestmapping(
            self):
        self.set_up()
        einzelbuchungen = viewcore.database_instance().einzelbuchungen
        einzelbuchungen.add(datum('01.01.2017'), 'KeinEssen', 'some name',
                            -1.54)

        requester.INSTANCE = RequesterStub({
            'https://test.test/getgemeinsam.php':
            self._IMPORT_DATA_GEMEINSAM,
            'https://test.test/deletegemeinsam.php':
            '',
            'https://test.test/getusername.php':
            'Sebastian'
        })

        context = import_data.index(
            PostRequest({
                'action': 'load_online_gemeinsame_transactions',
                'email': '',
                'server': 'test.test',
                'password': ''
            }))

        assert context['element_titel'] == 'Kategorien zuweisen'
        assert context['import'] == self._IMPORT_DATA_GEMEINSAM
        assert context['unpassende_kategorien'] == ['Essen']

        context = import_data.index(
            PostRequest({
                'action': 'map_and_push',
                'Essen_mapping': 'neue Kategorie anlegen',
                'import': self._IMPORT_DATA_GEMEINSAM
            }))

        assert context['element_titel'] == 'Export / Import'
        assert len(
            viewcore.database_instance().gemeinsamebuchungen.content) == 2
        assert viewcore.database_instance(
        ).gemeinsamebuchungen.content.Person[0] == 'Sebastian'
        assert viewcore.database_instance(
        ).gemeinsamebuchungen.content.Person[1] == 'Maureen'

        assert viewcore.database_instance(
        ).gemeinsamebuchungen.content.Kategorie[0] == 'Essen'
        assert viewcore.database_instance(
        ).gemeinsamebuchungen.content.Kategorie[1] == 'Essen'

        assert requester.instance().call_count_of(
            'https://test.test/deletegemeinsam.php') == 1
        assert requester.instance().complete_call_count() == 3
Пример #7
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')
Пример #8
0
    def test_change_db_should_trigger_db_reload(self):
        self.set_up()
        configuration.index(
            PostRequest({
                'action': 'edit_databases',
                'dbs': 'test'
            }))
        assert viewcore.database_instance().name == 'test'

        configuration.index(
            PostRequest({
                'action': 'edit_databases',
                'dbs': 'test2'
            }))
        assert viewcore.database_instance().name == 'test2'
    def teste_contextValues_withMutlibleEinnahmeAndAusgabe(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)
        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)
        db.einzelbuchungen.add(datum('10.10.2010'), 'some kategorie2',
                               'some name', -100)
        db.einzelbuchungen.add(datum('10.10.2010'), 'eine einnahme kategorie2',
                               'some name', 10)

        result_context = uebersicht_jahr.index(
            PostRequest({
                'date': '2010',
                'mode': ''
            }))

        assert result_context['zusammenfassung_ausgaben'] == [[
            'some kategorie', '-200.00', '00a65a'
        ], ['some kategorie2', '-100.00', '00c0ef']]
        assert result_context['zusammenfassung_einnahmen'] == [[
            'eine einnahme kategorie', '20.00', '3c8dbc'
        ], ['eine einnahme kategorie2', '10.00', 'f56954']]
        assert result_context['buchungen'][0]['wert'] == ['30.00']
        assert result_context['buchungen'][1]['wert'] == ['300.00']
Пример #10
0
    def test_gemeinsamImport_withUnpassendenUsername_shouldImportValueAndRepalceName(
            self):
        self.set_up()
        einzelbuchungen = viewcore.database_instance().einzelbuchungen
        einzelbuchungen.add(datum('01.01.2017'), 'Essen', 'some name', -1.54)

        requester.INSTANCE = RequesterStub({
            'https://test.test/getgemeinsam.php':
            self._IMPORT_DATA_GEMEINSAM_WRONG_SELF,
            'https://test.test/deletegemeinsam.php':
            '',
            'https://test.test/getusername.php':
            'Sebastian_Online'
        })

        context = import_data.index(
            PostRequest({
                'action': 'load_online_gemeinsame_transactions',
                'email': '',
                'server': 'test.test',
                'password': ''
            }))

        assert context['element_titel'] == 'Export / Import'
        assert len(
            viewcore.database_instance().gemeinsamebuchungen.content) == 2
        assert viewcore.database_instance(
        ).gemeinsamebuchungen.content.Person[0] == 'Sebastian'
        assert viewcore.database_instance(
        ).gemeinsamebuchungen.content.Person[1] == 'Maureen'

        assert requester.instance().call_count_of(
            'https://test.test/deletegemeinsam.php') == 1
        assert requester.instance().complete_call_count() == 3
Пример #11
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'
    def test_redirect(self):
        request_handler.stub_me()

        result = request_handler.handle_request(
            PostRequest({'redirect': 'test_page'}), lambda x: {}, 'nothing')

        assert result == '/test_page/'
    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']
Пример #14
0
    def test_addePassendeKategorie_shouldImportValue(self):
        self.set_up()
        einzelbuchungen = viewcore.database_instance().einzelbuchungen
        einzelbuchungen.add(datum('01.01.2017'), 'Essen', 'some name', -1.54)

        context = import_data.index(PostRequest({'import': self._IMPORT_DATA}))
        assert context['element_titel'] == 'Export / Import'
        assert einzelbuchungen.select().select_year(2017).sum() == -11.54
Пример #15
0
    def test_addeUnpassendenKategorie_shouldShowImportMappingPage(self):
        self.set_up()
        einzelbuchungen = viewcore.database_instance().einzelbuchungen
        einzelbuchungen.add(datum('01.01.2017'), 'unbekannt', 'some name',
                            -1.54)

        context = import_data.index(PostRequest({'import': self._IMPORT_DATA}))
        assert context['element_titel'] == 'Kategorien zuweisen'
    def test_abrechnen(self):
        self.set_up()
        testdb = viewcore.database_instance()
        testdb.gemeinsamebuchungen.add(datum('01.01.2010'), 'Eine Katgorie',
                                       'Ein Name', 2.60, 'Eine Person')
        gemeinsam_abrechnen.abrechnen(PostRequest({}))

        assert testdb.einzelbuchungen.anzahl() == 1
        assert testdb.einzelbuchungen.get_all().Wert[0] == '1.30'
Пример #17
0
 def test_change_partnername_should_change_partnername(self):
     self.set_up()
     assert viewcore.name_of_partner() == 'kein_Partnername_gesetzt'
     configuration.index(
         PostRequest({
             'action': 'set_partnername',
             'partnername': 'testpartner'
         }))
     assert viewcore.name_of_partner() == 'testpartner'
Пример #18
0
 def test_addKategorie(self):
     self.set_up()
     configuration.index(
         PostRequest({
             'action': 'add_kategorie',
             'neue_kategorie': 'test'
         }))
     assert viewcore.database_instance(
     ).einzelbuchungen.get_alle_kategorien() == set(['test'])
 def test_editCallFromUeberischt_shouldNameButtonEdit(self):
     self.set_up()
     database_instance().einzelbuchungen.add(datum('10.10.2010'),
                                             'kategorie', 'name', 10.00)
     context = addausgabe.handle_request(
         PostRequest({
             'action': 'edit',
             'edit_index': '0'
         }))
     assert context['approve_title'] == 'Ausgabe aktualisieren'
Пример #20
0
 def test_delete(self):
     self.set_up()
     self.add_test_data()
     uebersicht_einzelbuchungen.index(
         PostRequest({
             'action': 'delete',
             'delete_index': '1'
         }))
     einzelbuchungen = viewcore.database_instance().einzelbuchungen
     assert einzelbuchungen.select().sum() == 100
Пример #21
0
    def test_gemeinsam_addePassendeKategorie_shouldImportValue(self):
        self.set_up()
        einzelbuchungen = viewcore.database_instance().einzelbuchungen
        einzelbuchungen.add(datum('01.01.2017'), 'Essen', 'some name', -1.54)

        html, context = import_data.handle_request(PostRequest(
            {'import': self._IMPORT_DATA_GEMEINSAM}),
                                                   gemeinsam=True)
        assert context['element_titel'] == 'Export / Import'
        assert len(
            viewcore.database_instance().gemeinsamebuchungen.content) == 2
Пример #22
0
 def test_change_themecolor_should_change_partnername(self):
     self.set_up()
     assert configuration_provider.get_configuration(
         'THEME_COLOR') == '#00acd6'
     configuration.index(
         PostRequest({
             'action': 'change_themecolor',
             'themecolor': '#000000'
         }))
     assert configuration_provider.get_configuration(
         'THEME_COLOR') == '#000000'
Пример #23
0
 def test_change_themecolor_should_change_partnername(self):
     self.set_up()
     assert configuration_provider.get_configuration(
         'AUSGESCHLOSSENE_KATEGORIEN') == ''
     configuration.index(
         PostRequest({
             'action': 'set_ausgeschlossene_kategorien',
             'ausgeschlossene_kategorien': 'Alkohol'
         }))
     assert configuration_provider.get_configuration(
         'AUSGESCHLOSSENE_KATEGORIEN') == 'Alkohol'
    def teste_gleitkommadarstellung_jahress_zusammenfassung(self):
        self.set_up()
        db = viewcore.database_instance()
        db.einzelbuchungen.add(datum('10.10.2010'), 'some kategorie',
                               'some name', -100)

        result_context = uebersicht_monat.index(
            PostRequest({'date': '2010_10'}))

        assert result_context['wert_uebersicht_jahr_gruppe_1'] == '0.00'
        assert result_context['wert_uebersicht_jahr_gruppe_2'] == '100.00'
    def test_edit_ausgabe_should_only_fire_once(self):
        self.set_up()

        addeinnahme.index(VersionedPostRequest(
            {'action':'add',
             'date': rfc('1.1.2017'),
             'kategorie':'Essen',
             'name':'testname',
             'wert':'2,00'
             }
         ))

        next_id = request_handler.current_key()
        addeinnahme.index(PostRequest(
            {'action':'add',
             'ID':next_id,
             'edit_index':'0',
             'date': rfc('5.1.2017'),
             'kategorie':'Essen',
             'name':'testname',
             'wert':'2,50'
             }
         ))

        addeinnahme.index(PostRequest(
            {'action':'add',
             'ID':next_id,
             'edit_index':'0',
             'date': rfc('5.1.2017'),
             'kategorie':'overwritten',
             'name':'overwritten',
             'wert':'0,0'
             }
         ))

        assert len(db().einzelbuchungen.content) == 1
        assert db().einzelbuchungen.content.Wert[0] == float('2.50')
        assert db().einzelbuchungen.content.Name[0] == 'testname'
        assert db().einzelbuchungen.content.Kategorie[0] == 'Essen'
        assert db().einzelbuchungen.content.Datum[0] == datum('5.1.2017')
Пример #26
0
    def test_import_shouldWriteIntoAbrechnungen(self):
        self.set_up()
        einzelbuchungen = viewcore.database_instance().einzelbuchungen
        einzelbuchungen.add(datum('01.01.2017'), 'Essen', 'some name', -1.54)

        context = import_data.index(PostRequest({'import': self._IMPORT_DATA}))

        written_abrechnung = None
        for key in FileSystem.instance()._fs_stub.keys():
            if key.startswith('../Import'):
                written_abrechnung = FileSystem.instance()._fs_stub[key]

        assert written_abrechnung == self._IMPORT_DATA
Пример #27
0
 def test_change_colors(self):
     self.set_up()
     assert viewcore.design_colors(
     ) == '3c8dbc,f56954,00a65a,00c0ef,f39c12,d2d6de,001F3F,39CCCC,3D9970,01FF70,FF851B,F012BE,8E24AA,D81B60,222222,d2d6de'.split(
         ',')
     configuration.index(
         PostRequest({
             'action': 'change_colorpalette',
             '0_checked': 'on',
             '0_farbe': '#000000',
             '1_checked': 'on',
             '1_farbe': '#FFFFFF',
             '2_farbe': '#555555'
         }))
     assert viewcore.design_colors() == ['000000', 'FFFFFF']
     self.set_up()
    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']
Пример #29
0
    def test_change_partnername_should_mirgrate_old_partnernames(self):
        self.set_up()
        name_of_partner = viewcore.name_of_partner()
        gemeinsame_buchungen = viewcore.database_instance().gemeinsamebuchungen
        gemeinsame_buchungen.add(datum('01.01.2017'), 'kat', 'name', 1,
                                 name_of_partner)

        configuration.index(
            PostRequest({
                'action': 'set_partnername',
                'partnername': 'testpartner_renamed'
            }))
        gemeinsame_buchungen = viewcore.database_instance().gemeinsamebuchungen
        database_partners = gemeinsame_buchungen.content.Person

        assert set(database_partners) == set(['testpartner_renamed'])
Пример #30
0
 def test_editCallFromUeberischt_shouldNameButtonEdit(self):
     self.set_up()
     db = viewcore.database_instance()
     db.gemeinsamebuchungen.add(datum('10.10.2010'), 'kategorie',
                                'ausgaben_name', -10, 'Sebastian')
     context = addgemeinsam.index(
         PostRequest({
             'action': 'edit',
             'edit_index': '0'
         }))
     assert context['approve_title'] == 'Gemeinsame Ausgabe aktualisieren'
     preset = context['default_item']
     assert preset['datum'] == rfc('10.10.2010')
     assert preset['edit_index'] == '0'
     assert preset['kategorie'] == 'kategorie'
     assert preset['name'] == 'ausgaben_name'
     assert preset['wert'] == '10,00'
     assert preset['person'] == 'Sebastian'