|
| 1 | +import unittest |
| 2 | +from patterns.creational.factory import get_localizer, GreekLocalizer, EnglishLocalizer |
| 3 | + |
| 4 | +class TestFactory(unittest.TestCase): |
| 5 | + def test_get_localizer_greek(self): |
| 6 | + localizer = get_localizer("Greek") |
| 7 | + self.assertIsInstance(localizer, GreekLocalizer) |
| 8 | + self.assertEqual(localizer.localize("dog"), "σκύλος") |
| 9 | + self.assertEqual(localizer.localize("cat"), "γάτα") |
| 10 | + # Test unknown word returns the word itself |
| 11 | + self.assertEqual(localizer.localize("monkey"), "monkey") |
| 12 | + |
| 13 | + def test_get_localizer_english(self): |
| 14 | + localizer = get_localizer("English") |
| 15 | + self.assertIsInstance(localizer, EnglishLocalizer) |
| 16 | + self.assertEqual(localizer.localize("dog"), "dog") |
| 17 | + self.assertEqual(localizer.localize("cat"), "cat") |
| 18 | + |
| 19 | + def test_get_localizer_default(self): |
| 20 | + # Test default argument |
| 21 | + localizer = get_localizer() |
| 22 | + self.assertIsInstance(localizer, EnglishLocalizer) |
| 23 | + |
| 24 | + def test_get_localizer_unknown_language(self): |
| 25 | + # Test fallback for unknown language if applicable, |
| 26 | + # or just verify what happens. |
| 27 | + # Based on implementation: localizers.get(language, EnglishLocalizer)() |
| 28 | + # It defaults to EnglishLocalizer for unknown keys. |
| 29 | + localizer = get_localizer("Spanish") |
| 30 | + self.assertIsInstance(localizer, EnglishLocalizer) |
0 commit comments