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))
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()
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()