include related Jobs in group del protection

This commit is contained in:
AlanCoding 2018-03-19 14:16:15 -04:00
parent e58038b056
commit 001fa634aa
No known key found for this signature in database
GPG Key ID: FD2C3C012A72926B
2 changed files with 28 additions and 1 deletions

View File

@ -960,7 +960,10 @@ class Group(CommonModelNameNotUnique, RelatedJobsMixin):
RelatedJobsMixin
'''
def _get_related_jobs(self):
return InventoryUpdate.objects.filter(inventory_source__in=self.inventory_sources.all())
return UnifiedJob.objects.non_polymorphic().filter(
Q(Job___inventory=self.inventory) |
Q(InventoryUpdate___inventory_source__groups=self)
)
class InventorySourceOptions(BaseModel):

View File

@ -12,6 +12,7 @@ from awx.main.models import (
Inventory,
InventorySource,
InventoryUpdate,
Job
)
from awx.main.utils.filters import SmartFilter
@ -99,6 +100,29 @@ class TestSCMUpdateFeatures:
assert not mck_update.called
@pytest.mark.django_db
class TestRelatedJobs:
def test_inventory_related(self, inventory):
job = Job.objects.create(
inventory=inventory
)
assert job.id in [jerb.id for jerb in inventory._get_related_jobs()]
def test_related_group_jobs(self, group):
job = Job.objects.create(
inventory=group.inventory
)
assert job.id in [jerb.id for jerb in group._get_related_jobs()]
def test_related_group_update(self, group):
src = group.inventory_sources.create(name='foo')
job = InventoryUpdate.objects.create(
inventory_source=src
)
assert job.id in [jerb.id for jerb in group._get_related_jobs()]
@pytest.mark.django_db
class TestSCMClean:
def test_clean_update_on_project_update_multiple(self, inventory):