Beispiel #1
0
def test_user_language_preference_it_from_fr_en_from_de_tr_entry(
        admin_user, langstring_body, test_adminuser_webrequest,
        user_language_preference_it_mtfrom_fr,
        user_language_preference_en_mtfrom_de, en_from_tr_langstring_entry,
        de_from_tr_langstring_entry, test_session):
    """
    Body: tr, en-x-mtfrom-tr, de-x-mtfrom-tr
    User Language Preference: {fr-to-it: explicit, priority: 1,
                               de-to-en: explicit, priority: 0}
    Expect: en-x-mtfrom-tr
    """

    lang_prefs = admin_user.language_preference

    it_from_fr_pref = [
        a for a in lang_prefs
        if a.user == admin_user and a.locale == 'fr' and a.translate == 'it'
    ][0]

    it_from_fr_pref.preferred_order = 1

    test_session.flush()

    best = langstring_body.best_lang(user_prefs=lang_prefs, allow_errors=True)

    assert best.locale_code == create_mt_code('tr', 'en')
Beispiel #2
0
def test_user_language_preference_fr_from_en_it_from_fr_fr_entry(
        admin_user, langstring_body, test_adminuser_webrequest,
        user_language_preference_fr_mtfrom_en,
        user_language_preference_it_mtfrom_fr, it_from_fr_langstring_entry,
        langstring_entry_values, fr_langstring_entry, test_session):
    """
    Body: fr, it-x-mtfrom-fr, en-x-mtfrom-fr
    User Language Preference: {en-to-fr: explicit, fr-to-it}
    Expect: fr-x-mtfrom-en
    """
    from assembl.models.langstrings import LangStringEntry

    entry = LangStringEntry(
        locale_confirmed=False,
        langstring=langstring_body,
        locale='en',
        mt_trans_of=fr_langstring_entry,
        value=langstring_entry_values.get('body').get('en'))

    test_session.expire(langstring_body, ["entries"])

    test_session.add(entry)
    test_session.commit()

    lang_prefs = admin_user.language_preference
    best = langstring_body.best_lang(user_prefs=lang_prefs, allow_errors=True)

    assert best.locale_code == create_mt_code('fr', 'it')
Beispiel #3
0
def test_user_language_preference_fr_cookie_en_entry(
        admin_user, langstring_body, test_adminuser_webrequest,
        user_language_preference_fr_cookie, fr_from_en_langstring_entry):
    """
    Body: en
    User Language Preference: {fr: cookie}
    Expect: en
    """

    lang_prefs = admin_user.language_preference
    best = langstring_body.best_lang(user_prefs=lang_prefs, allow_errors=True)

    assert best.locale_code == create_mt_code('en', 'fr')
Beispiel #4
0
def test_user_language_preference_en_to_fr_explicit_missing_fr_explicit(
        admin_user, langstring_body, test_adminuser_webrequest,
        user_language_preference_fr_cookie,
        user_language_preference_fr_mtfrom_en, fr_from_en_langstring_entry):
    """
    Body: en, fr-x-mtfrom-en
    User Language Preference: {en-to-fr: explicit; fr: explicit; en: cookie}
    Expect: fr-x-mtfrom-en
    """
    lang_prefs = admin_user.language_preference
    best = langstring_body.best_lang(user_prefs=lang_prefs, allow_errors=True)

    assert best.locale_code == create_mt_code('en', 'fr')
Beispiel #5
0
def test_user_language_preference_en_from_fr_fr_from_en_fr_entry(
        admin_user, langstring_body, test_adminuser_webrequest,
        user_language_preference_fr_mtfrom_en,
        user_language_preference_en_mtfrom_fr, en_from_fr_langstring_entry):
    """
    Body: fr, en-x-mtfrom-fr
    User Language Preference: {en-to-fr: explicit; fr-to-en: explicit}
    Expect: en-x-mtfrom-fr
    """

    lang_prefs = admin_user.language_preference
    best = langstring_body.best_lang(user_prefs=lang_prefs, allow_errors=True)

    assert best.locale_code == create_mt_code('fr', 'en')
Beispiel #6
0
def test_user_language_preference_locale_undefined_fr_from_und(
        admin_user, langstring_body, test_adminuser_webrequest,
        user_language_preference_en_cookie,
        user_language_preference_fr_mtfrom_en, fr_from_und_langstring_entry):
    """
    Body: und, fr-x-mtfrom-und
    User Language Preference: {en: cookie; en-to-fr: explicit}
    Expect: fr-x-mtfrom-und
    """

    lang_prefs = admin_user.language_preference
    best = langstring_body.best_lang(user_prefs=lang_prefs, allow_errors=True)

    assert best.locale_code == create_mt_code('und', 'fr')
Beispiel #7
0
def test_user_language_preferences_fr_to_it_explicit_en_cookie_fr_entry(
        admin_user, langstring_body, test_adminuser_webrequest,
        user_language_preference_en_cookie,
        user_language_preference_it_mtfrom_en, fr_langstring_entry,
        it_from_fr_langstring_entry, en_from_fr_langstring_entry):
    """
    Body: fr, it-x-mtfrom-fr, en-x-mtfrom-fr
    User Language Preferences: {en: cookie; en-to-it: explicit}
    Expect: it-x-mtfrom-fr
    """
    lang_prefs = admin_user.language_preference
    best = langstring_body.best_lang(user_prefs=lang_prefs, allow_errors=True)

    assert best.locale_code == create_mt_code('fr', 'it')
Beispiel #8
0
def test_empty_user_language_preference_fr_CA_cookie(
        langstring_body, fr_from_en_langstring_entry,
        test_adminuser_webrequest):
    """
    Body: en, fr-x-mtfrom-en
    User Language Preferences: None
    Request: _LOCALE_: 'fr_CA'
    Expect: fr-x-mtfrom-en
    """

    # A pyramid application uses a locale negotiator that looks for
    # _LOCALE_ in either params or cookies in order to determine the
    # session locale.
    # http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/i18n.html
    test_adminuser_webrequest.cookies["_LOCALE_"] = "fr_CA"

    user_language_preference = None
    best = langstring_body.best_lang(user_prefs=user_language_preference,
                                     allow_errors=True)

    assert best.locale_code == create_mt_code('en', 'fr')
Beispiel #9
0
def test_user_language_preference_it_explicit_fr_explicit_en_entry(
        admin_user, langstring_body, test_adminuser_webrequest,
        user_language_preference_it_explicit,
        user_language_preference_fr_explicit, fr_from_en_langstring_entry,
        it_from_en_langstring_entry, test_session):
    """
    Body: en, fr-x-mtfrom-en, it-x-mtfrom-en
    User Language Preference: {it: explicit, priority: 0;
                               fr: explicit, priority: 1}
    Expect: it-x-mtfrom-en
    """
    lang_prefs = admin_user.language_preference

    fr_pref = [
        a for a in lang_prefs if a.user == admin_user and a.locale == 'fr'
    ][0]

    fr_pref.preferred_order = 1
    test_session.flush()

    best = langstring_body.best_lang(user_prefs=lang_prefs, allow_errors=True)

    assert best.locale_code == create_mt_code('en', 'it')