import sys
import unittest

from loesung import summiere_umsaetze


class Tests(unittest.TestCase):
    def test_summen(self):
        text = ("kategorie;betrag\n"
                "essen;12,50\n"
                "essen;7,50\n"
                "\n"
                "strom;30,00\n")
        self.assertEqual(summiere_umsaetze(text),
                         {"essen": 20.0, "strom": 30.0})

    def test_ohne_semikolon_ignoriert(self):
        text = "kategorie;betrag\nnur eine notizzeile\nessen;1,00\n"
        self.assertEqual(summiere_umsaetze(text), {"essen": 1.0})

    def test_kaputter_betrag(self):
        with self.assertRaises(ValueError):
            summiere_umsaetze("kategorie;betrag\nessen;zwoelf\n")


if __name__ == "__main__":
    r = unittest.main(exit=False).result
    sys.exit(0 if r.wasSuccessful() else 1)
