def test_define_str(): """ __str__ return """ lang = LangBase(code="fr", label="French") assert str(lang) == "French"
def test_get_context_nonempty(): """ Check get_context from with non empty initial context """ settings = DummySettings() locale = LangBase(code="fr") class DummyView(PageViewBase): context = { "myvar": True, "page_title": "Nope", } view = DummyView( title="Dummy", destination="{language_code}/hip/../hop.html", template_name="foo/bar.html", lang=locale, settings=settings, ) assert view.get_context() == { "myvar": True, "page_template_name": "foo/bar.html", "page_title": "Dummy", "page_relative_position": "../", "page_lang": locale, "page_destination": "fr/hop.html", }
def test_define_label(): """ Simply define label """ lang = LangBase(code="fr", label="French") assert lang.code == "fr" assert lang.label == "French"
def test_parsed_code(code, name, region): """ """ lang = LangBase(code=code) assert lang.code == code assert lang.label == code assert lang.language_name == name assert lang.region_name == region
def get_lang(self): """ Get page language object. Returns: optimus.i18n.LangBase: Language object. If ``lang`` page attribute is ``None`` it will create a language object using default language identifier from setting ``LANGUAGE_CODE``. """ # Defaut language identifier if not given if getattr(self, "lang", None) is None: self.lang = LangBase(code=self.settings.LANGUAGE_CODE) # If the lang attribute contains a string, assume this is the language # identifier elif isinstance(getattr(self, "lang"), str): self.lang = LangBase(code=getattr(self, "lang")) return self.lang
def test_define_code_through_arg(): """ Simply define code through keyword argument """ lang = LangBase(code="fr") assert lang.code == "fr" assert lang.alt_code == "fr" assert lang.external_code == "fr"
def test_get_lang_object(): """ 'lang' view attribute defined with a LangBase object """ settings = DummySettings() locale = LangBase(code="fr") view = PageViewBase( title="Dummy", destination="Foo", template_name="Bar", lang=locale, settings=settings, ) assert view.get_lang().label == "fr" assert view.get_lang() == locale
def test_get_context_from_zero(): """ Check get_context from empty context """ settings = DummySettings() locale = LangBase(code="fr") view = PageViewBase( title="Dummy", destination="{language_code}/hip/../hop.html", template_name="foo/bar.html", lang=locale, settings=settings, ) assert view.get_context() == { "page_template_name": "foo/bar.html", "page_title": "Dummy", "page_relative_position": "../", "page_lang": locale, "page_destination": "fr/hop.html", }
def test_missing_code(): """ LangBase requires to define a code value """ with pytest.raises(InvalidLangageIdentifier): LangBase()
def test_define_code_region_with_underscore(): """ Language name and region must be join with an underscore """ with pytest.raises(InvalidLangageIdentifier): LangBase(code="fr-BE")