Пример #1
0
    def setup_disabled_project(self):
        from tests.factories import (
            DirectoryFactory,
            ProjectDBFactory,
            TranslationProjectFactory,
        )

        from pootle_language.models import Language

        source_language = Language.objects.get(code="en")
        project = ProjectDBFactory(
            code="disabled_project0",
            fullname="Disabled Project 0",
            source_language=source_language,
        )
        project.disabled = True
        project.save()
        language = Language.objects.get(code="language0")
        tp = TranslationProjectFactory(project=project, language=language)
        tp_dir = tp.directory
        tp_dir.obsolete = False
        tp_dir.save()
        self._add_stores(tp, n=(1, 1))
        subdir0 = DirectoryFactory(name="subdir0", parent=tp.directory)
        self._add_stores(tp, n=(1, 1), parent=subdir0)
Пример #2
0
    def setup_terminology(self):
        from tests.factories import (
            ProjectDBFactory,
            StoreDBFactory,
            TranslationProjectFactory,
            UnitDBFactory,
        )
        from pootle_language.models import Language

        source_language = Language.objects.get(code="en")
        terminology = ProjectDBFactory(
            code="terminology",
            checkstyle="terminology",
            fullname="Terminology",
            source_language=source_language,
        )
        for language in Language.objects.exclude(code="en"):
            tp = TranslationProjectFactory(project=terminology,
                                           language=language)

            store = StoreDBFactory(translation_project=tp,
                                   name="terminology.po")
            store.save()
            for i_ in range(0, 1):
                UnitDBFactory(store=store)
Пример #3
0
def tp_checker_tests(request, english, checkers):
    from tests.factories import ProjectDBFactory

    checker_name = checkers
    project = ProjectDBFactory(checkstyle=checker_name,
                               source_language=english)
    return (checker_name, project)
Пример #4
0
    def setup_site_matrix(self):
        from tests.factories import ProjectDBFactory, LanguageDBFactory

        from pootle_language.models import Language

        # add 2 languages
        for i_ in range(0, 2):
            LanguageDBFactory()

        source_language = Language.objects.get(code="en")
        for i_ in range(0, 2):
            # add 2 projects
            ProjectDBFactory(source_language=source_language)
Пример #5
0
def test_language_liveness():
    language = LanguageDBFactory()

    # Test unused language is not live.
    assert language.translationproject_set.count() == 0
    assert language not in Language.live.all()
    assert language not in Language.live.get_all_queryset()

    # Create obsolete TP.
    obsolete_tp = TranslationProjectFactory(
        language=language, project=ProjectDBFactory(source_language=language))
    obsolete_tp.directory.makeobsolete()

    # Test language used only in obsolete TP is not live.
    assert obsolete_tp.directory.obsolete
    assert language.translationproject_set.count() == 1
    assert language not in Language.live.all()
    assert language not in Language.live.get_all_queryset()

    # Create TP for disabled project.
    disabled_project = ProjectDBFactory(source_language=language)
    disabled_project.disabled = True
    disabled_project.save()
    disabled_project_tp = TranslationProjectFactory(language=language,
                                                    project=disabled_project)

    # Test language used only in disabled project and obsolete TP is not live.
    assert disabled_project.disabled
    assert language.translationproject_set.count() == 2
    assert language not in Language.live.all()
    # But live for admins.
    assert language in Language.live.get_all_queryset()

    # Create regular TP.
    TranslationProjectFactory(
        language=language, project=ProjectDBFactory(source_language=language))

    # Test language used in regular and obsolete TPs and in TP on disabled
    # project is live.
    assert language.translationproject_set.count() == 3
    assert language in Language.live.all()
    # But live for admins.
    assert language in Language.live.get_all_queryset()

    # Delete TP for disabled project.
    disabled_project_tp.delete()

    # Test language both in obsolete and regular TP is live.
    assert language.translationproject_set.count() == 2
    assert language in Language.live.all()
    assert language in Language.live.get_all_queryset()

    # Create again TP for disabled project and delete obsolete TP.
    # Delete obsolete TP.
    disabled_project_tp = TranslationProjectFactory(language=language,
                                                    project=disabled_project)
    obsolete_tp.delete()

    # Test language both in disabled project and regular TP is live.
    assert language.translationproject_set.count() == 2
    assert language in Language.live.all()
    assert language in Language.live.get_all_queryset()

    # Delete TP for disabled project.
    disabled_project_tp.delete()

    # Last language is live.
    assert language.translationproject_set.count() == 1
    assert language in Language.live.all()
    assert language in Language.live.get_all_queryset()