import unittest from utils.helpers import format_currency, format_date, validate_pin, parse_price class TestHelpers(unittest.TestCase): def test_format_currency_german(self): self.assertEqual(format_currency(2.50), "2,50 €") self.assertEqual(format_currency(1234.567), "1234,57 €") self.assertEqual(format_currency(0.0), "0,00 €") def test_format_currency_non_german(self): self.assertEqual(format_currency(2.50, symbol="$", is_german=False), "$2.50") self.assertEqual(format_currency(0.99, symbol="£", is_german=False), "£0.99") def test_format_date(self): self.assertEqual(format_date("2026-06-02T15:00:00.000000"), "02.06.2026") self.assertEqual(format_date("2026-12-25T18:30:00"), "25.12.2026") self.assertEqual(format_date("invalid-date-format"), "invalid-da") def test_validate_pin(self): self.assertTrue(validate_pin("1234")) self.assertTrue(validate_pin("4242")) self.assertTrue(validate_pin("123456")) self.assertFalse(validate_pin("123")) # too short self.assertFalse(validate_pin("123a")) # non-numeric self.assertFalse(validate_pin("")) # empty def test_parse_price(self): self.assertEqual(parse_price("2.50"), 2.50) self.assertEqual(parse_price("2,50"), 2.50) self.assertEqual(parse_price(" 0,99 "), 0.99) with self.assertRaises(ValueError): parse_price("-2.50") # negative with self.assertRaises(ValueError): parse_price("abc") # non-numeric if __name__ == "__main__": unittest.main()