diff --git a/src/crewai/utilities/i18n.py b/src/crewai/utilities/i18n.py index cf396f8a1..649f58bef 100644 --- a/src/crewai/utilities/i18n.py +++ b/src/crewai/utilities/i18n.py @@ -7,7 +7,7 @@ from pydantic import BaseModel, Field, PrivateAttr, ValidationError, model_valid class I18N(BaseModel): _translations: Dict[str, Dict[str, str]] = PrivateAttr() - language_file: str = Field( + language_file: Optional[str] = Field( default=None, description="Path to the translation file to load", ) diff --git a/tests/utilities/test_i18n.py b/tests/utilities/test_i18n.py new file mode 100644 index 000000000..69d889cee --- /dev/null +++ b/tests/utilities/test_i18n.py @@ -0,0 +1,40 @@ +import pytest + +from crewai.utilities.i18n import I18N + + +def test_load_translation(): + i18n = I18N(language="en") + i18n.load_translation() + assert i18n._translations is not None + + +def test_slice(): + i18n = I18N(language="en") + i18n.load_translation() + assert isinstance(i18n.slice("role_playing"), str) + + +def test_errors(): + i18n = I18N(language="en") + i18n.load_translation() + assert isinstance(i18n.errors("unexpected_format"), str) + + +def test_tools(): + i18n = I18N(language="en") + i18n.load_translation() + assert isinstance(i18n.tools("ask_question"), str) + + +def test_retrieve(): + i18n = I18N(language="en") + i18n.load_translation() + assert isinstance(i18n.retrieve("slices", "role_playing"), str) + + +def test_retrieve_not_found(): + i18n = I18N(language="en") + i18n.load_translation() + with pytest.raises(Exception): + i18n.retrieve("nonexistent_kind", "nonexistent_key")