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