Beispiel #1
0
def test_contextmanager_update_tp_after_suggestion(tp0, store0, member,
                                                   update_unit_test):
    unit = store0.units.first()
    sugg_review = review.get(Suggestion)

    with update_unit_test(SuggestionAddTest(unit)):
        with update_tp_after(tp0):
            sugg_text = str(unit.source_f).replace("U", "X")
            sugg1, created_ = review.get(Suggestion)().add(unit,
                                                           sugg_text,
                                                           user=member)

    with update_unit_test(SuggestionAcceptTest(unit)):
        with update_tp_after(tp0):
            sugg_review(suggestions=[sugg1], reviewer=member).accept()

    unit = store0.units.exclude(pk=unit.pk).first()
    with update_unit_test(SuggestionAddTest(unit)):
        with update_tp_after(tp0):
            sugg_text = str(unit.source_f).replace("U", "X")
            sugg1, created_ = review.get(Suggestion)().add(unit,
                                                           sugg_text,
                                                           user=member)

    with update_unit_test(SuggestionRejectTest(unit)):
        with update_tp_after(tp0):
            sugg_review(suggestions=[sugg1], reviewer=member).reject()
Beispiel #2
0
def test_contextmanager_update_tp_after_suggestion(tp0, store0, member,
                                                   update_unit_test):
    unit = store0.units.first()
    sugg_review = review.get(Suggestion)

    with update_unit_test(SuggestionAddTest(unit)):
        with update_tp_after(tp0):
            sugg_text = str(unit.source_f).replace("U", "X")
            sugg1, created_ = review.get(Suggestion)().add(
                unit,
                sugg_text,
                user=member)

    with update_unit_test(SuggestionAcceptTest(unit)):
        with update_tp_after(tp0):
            sugg_review(suggestions=[sugg1], reviewer=member).accept()

    unit = store0.units.exclude(pk=unit.pk).first()
    with update_unit_test(SuggestionAddTest(unit)):
        with update_tp_after(tp0):
            sugg_text = str(unit.source_f).replace("U", "X")
            sugg1, created_ = review.get(Suggestion)().add(
                unit,
                sugg_text,
                user=member)

    with update_unit_test(SuggestionRejectTest(unit)):
        with update_tp_after(tp0):
            sugg_review(suggestions=[sugg1], reviewer=member).reject()
Beispiel #3
0
    def setup_templates(self):
        from pootle.core.contextmanagers import keep_data
        from pootle.core.signals import update_data
        from pootle_project.models import Project
        from pootle_translationproject.contextmanagers import update_tp_after
        from pytest_pootle.factories import (
            LanguageDBFactory, TranslationProjectFactory)

        tps = []
        with keep_data():
            templates = LanguageDBFactory(code="templates")

            for project in Project.objects.all():
                # add a TP to the project for each language
                tp = TranslationProjectFactory(project=project, language=templates)
                # As there are no files on the FS we have to currently unobsolete
                # the directory
                tp_dir = tp.directory
                tp_dir.obsolete = False
                tp_dir.save()
                self._add_template_stores(tp)
                tps.append(tp)
        for tp in tps:
            with update_tp_after(tp):
                for store in tp.stores.all():
                    update_data.send(
                        store.__class__,
                        instance=store)
Beispiel #4
0
    def setup_templates(self):
        from pootle.core.contextmanagers import keep_data
        from pootle.core.signals import update_data
        from pootle_project.models import Project
        from pootle_translationproject.contextmanagers import update_tp_after
        from pytest_pootle.factories import (LanguageDBFactory,
                                             TranslationProjectFactory)

        tps = []
        with keep_data():
            templates = LanguageDBFactory(code="templates")

            for project in Project.objects.all():
                # add a TP to the project for each language
                tp = TranslationProjectFactory(project=project,
                                               language=templates)
                # As there are no files on the FS we have to currently unobsolete
                # the directory
                tp_dir = tp.directory
                tp_dir.obsolete = False
                tp_dir.save()
                self._add_template_stores(tp)
                tps.append(tp)
        for tp in tps:
            with update_tp_after(tp):
                for store in tp.stores.all():
                    update_data.send(store.__class__, instance=store)
Beispiel #5
0
def test_contextmanager_update_tp_after_checks(tp0, store0, member,
                                               update_unit_test):

    # unit save
    unit = store0.units.exclude(qualitycheck__name="xmltags").first()
    with update_unit_test(CriticalCheckTest(unit)):
        with update_tp_after(tp0):
            unit.target = "<bad></target>."
            unit.save(user=member)

    # unit updated by update
    unit = store0.units.exclude(pk=unit.pk).exclude(
        qualitycheck__name="xmltags").first()
    store0.data.refresh_from_db()
    ttk = store0.deserialize(store0.serialize())
    ttk_unit = ttk.findid(unit.unitid)
    ttk_unit.target = "<bad></target>."
    with update_unit_test(CriticalCheckTest(unit)):
        with update_tp_after(tp0):
            store0.update(store=ttk,
                          store_revision=store0.data.max_unit_revision + 1,
                          user=member)
Beispiel #6
0
def test_contextmanager_update_tp_after_checks(tp0, store0, member,
                                               update_unit_test):

    # unit save
    unit = store0.units.exclude(
        qualitycheck__name="xmltags").first()
    with update_unit_test(CriticalCheckTest(unit)):
        with update_tp_after(tp0):
            unit.target = "<bad></target>."
            unit.save(user=member)

    # unit updated by update
    unit = store0.units.exclude(pk=unit.pk).exclude(
        qualitycheck__name="xmltags").first()
    store0.data.refresh_from_db()
    ttk = store0.deserialize(store0.serialize())
    ttk_unit = ttk.findid(unit.unitid)
    ttk_unit.target = "<bad></target>."
    with update_unit_test(CriticalCheckTest(unit)):
        with update_tp_after(tp0):
            store0.update(
                store=ttk,
                store_revision=store0.data.max_unit_revision + 1,
                user=member)
Beispiel #7
0
    def setup_submissions(self):
        from django.contrib.auth import get_user_model
        from django.utils import timezone

        from pootle.core.contextmanagers import bulk_operations
        from pootle_data.models import TPChecksData, TPData
        from pootle_score.models import UserTPScore
        from pootle_statistics.models import SubmissionTypes
        from pootle_store.constants import UNTRANSLATED
        from pootle_store.models import Unit, UnitChange
        from pootle_translationproject.contextmanagers import update_tp_after
        from pootle_translationproject.models import TranslationProject

        year_ago = timezone.now() - relativedelta(years=1)

        units = Unit.objects.all()
        units.update(creation_time=year_ago)

        User = get_user_model()
        admin = User.objects.get(username="******")
        member = User.objects.get(username="******")
        member2 = User.objects.get(username="******")

        UnitChange.objects.bulk_create(
            UnitChange(unit_id=unit_id, changed_with=SubmissionTypes.SYSTEM)
            for unit_id
            in units.filter(state__gt=UNTRANSLATED).values_list("id", flat=True))

        tps = TranslationProject.objects.exclude(
            language__code="templates").select_related(
                "language", "project__source_language").all()
        bulk_pootle = bulk_operations(
            models=(
                get_user_model(),
                UserTPScore,
                TPData,
                TPChecksData))
        with bulk_pootle:
            for tp in tps:
                with update_tp_after(tp):
                    self._add_subs_to_stores(
                        tp.stores, admin, member, member2)
Beispiel #8
0
    def setup_submissions(self):
        from django.contrib.auth import get_user_model
        from django.utils import timezone

        from pootle.core.contextmanagers import bulk_operations
        from pootle_data.models import TPChecksData, TPData
        from pootle_score.models import UserTPScore
        from pootle_statistics.models import SubmissionTypes
        from pootle_store.constants import UNTRANSLATED
        from pootle_store.models import Unit, UnitChange
        from pootle_translationproject.contextmanagers import update_tp_after
        from pootle_translationproject.models import TranslationProject

        year_ago = timezone.now() - relativedelta(years=1)

        units = Unit.objects.all()
        units.update(creation_time=year_ago)

        User = get_user_model()
        admin = User.objects.get(username="******")
        member = User.objects.get(username="******")
        member2 = User.objects.get(username="******")

        UnitChange.objects.bulk_create(
            UnitChange(unit_id=unit_id, changed_with=SubmissionTypes.SYSTEM)
            for unit_id in units.filter(
                state__gt=UNTRANSLATED).values_list("id", flat=True))

        tps = TranslationProject.objects.exclude(
            language__code="templates").select_related(
                "language", "project__source_language").all()
        bulk_pootle = bulk_operations(models=(get_user_model(), UserTPScore,
                                              TPData, TPChecksData))
        with bulk_pootle:
            for tp in tps:
                with update_tp_after(tp):
                    self._add_subs_to_stores(tp.stores, admin, member, member2)