Пример #1
0
def test_vfolder_unit_priorities(site_matrix):

    assert all(
        priority == 1
        for priority
        in Unit.objects.values_list("priority", flat=True))

    vfolder0 = VirtualFolderFactory(filter_rules="store0.po", priority=3)

    assert all(
        priority == 3
        for priority
        in vfolder0.units.values_list("priority", flat=True))

    assert all(
        priority == 1.0
        for priority
        in Unit.objects.filter(vfolders__isnull=True)
                       .values_list("priority", flat=True))

    vfolder0.filter_rules = "store1.po"
    vfolder0.save()

    assert all(
        priority == 3
        for priority
        in vfolder0.units.values_list("priority", flat=True))

    assert all(
        priority == 1.0
        for priority
        in Unit.objects.filter(vfolders__isnull=True)
                       .values_list("priority", flat=True))

    vfolder1 = VirtualFolderFactory(
        location='/{LANG}/project0/',
        filter_rules="store1.po",
        priority=4)
    vf1_pks = vfolder1.units.values_list("pk", flat=True)

    assert all(
        priority == 4.0
        for priority
        in vfolder1.units.values_list("priority", flat=True))

    assert all(
        priority == 3.0
        for priority
        in vfolder0.units.exclude(pk__in=vf1_pks)
                         .values_list("priority", flat=True))

    assert all(
        priority == 1.0
        for priority
        in Unit.objects.filter(vfolders__isnull=True)
                       .values_list("priority", flat=True))
Пример #2
0
def test_vfolder_membership(site_matrix):

    vfolder = VirtualFolderFactory(filter_rules="store0.po")

    live_units = Unit.objects.filter(state__gt=OBSOLETE)

    expected_units = live_units.filter(store__name="store0.po")

    # check default vfolder membership
    assert (
        sorted(vfolder.units.values_list("pk", flat=True))
        == sorted(expected_units.values_list("pk", flat=True)))

    vfolder.location = "/language0/{PROJ}/"
    vfolder.save()

    expected_units = live_units.filter(
        store__translation_project__language__code="language0",
        store__name="store0.po")

    # check vfolder membership after changing the location
    assert (
        sorted(vfolder.units.values_list("pk", flat=True))
        == sorted(expected_units.values_list("pk", flat=True)))

    obsolete_unit = (
        Unit.objects.filter(
            state=OBSOLETE,
            store__translation_project__language__code="language0",
            store__name="store0.po"))[0]

    # obsolete unit is not in the vfolder
    assert obsolete_unit not in vfolder.units.all()

    obsolete_unit.state = TRANSLATED
    obsolete_unit.save()

    # unobsoleted unit is in the vfolder
    assert obsolete_unit in vfolder.units.all()

    to_obsolete = vfolder.units.all()[0]
    to_obsolete.state = OBSOLETE
    to_obsolete.save()

    # obsoleted unit is not in the vfolder
    assert to_obsolete not in vfolder.units.all()
Пример #3
0
def site_matrix_with_vfolders(site_matrix):
    from pootle_pytest.factories import VirtualFolderFactory

    VirtualFolderFactory(filter_rules="store0.po")
    VirtualFolderFactory(filter_rules="store1.po")
    vfolder2 = VirtualFolderFactory(
        location='/{LANG}/project0/',
        filter_rules="store0.po")
    vfolder3 = VirtualFolderFactory(
        location='/{LANG}/project0/',
        filter_rules="store1.po")

    vfolder2.is_public = False
    vfolder2.save()
    vfolder3.is_public = False
    vfolder3.save()