Пример #1
0
def test_define_str():
    """
    __str__ return
    """
    lang = LangBase(code="fr", label="French")

    assert str(lang) == "French"
Пример #2
0
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",
    }
Пример #3
0
def test_define_label():
    """
    Simply define label
    """
    lang = LangBase(code="fr", label="French")

    assert lang.code == "fr"
    assert lang.label == "French"
Пример #4
0
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
Пример #5
0
    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
Пример #6
0
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"
Пример #7
0
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
Пример #8
0
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",
    }
Пример #9
0
def test_missing_code():
    """
    LangBase requires to define a code value
    """
    with pytest.raises(InvalidLangageIdentifier):
        LangBase()
Пример #10
0
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")