Fixed test cases

This commit is contained in:
Rick Stokkingreef 2018-11-08 12:07:07 +01:00
parent f916bd7994
commit 7dbb862673
3 changed files with 12 additions and 21 deletions

View File

@ -294,12 +294,11 @@ class Inventory(CommonModelNameNotUnique, ResourceMixin, RelatedJobsMixin):
# Remove any empty groups
for group_name in list(data.keys()):
if group_name == 'all':
continue
if not (data.get(group_name, {}).get('hosts', []) or data.get(group_name, {}).get('children', [])):
data.pop(group_name)
# Add the all group
data['all'] = all_group
if hostvars:
data.setdefault('_meta', dict())
data['_meta'].setdefault('hostvars', dict())

View File

@ -13,6 +13,7 @@ def test_empty_inventory(post, get, admin_user, organization, group_factory):
inventory.save()
resp = get(reverse('api:inventory_script_view', kwargs={'version': 'v2', 'pk': inventory.pk}), admin_user)
jdata = json.loads(resp.content)
jdata.pop('all')
assert inventory.hosts.count() == 0
assert jdata == {}

View File

@ -40,28 +40,17 @@ class TestInventoryScript:
def test_all_group(self, inventory):
inventory.groups.create(name='all', variables={'a1': 'a1'})
g1 = inventory.groups.create(name='g1', variables={'v1': 'v1'})
h1 = inventory.hosts.create(name='h1')
inventory.hosts.create(name='h2')
# h1 becomes member of g1 group
g1.hosts.add(h1)
# make sure we return a1 details in output
data = inventory.get_script_data(hostvars=1)
data = inventory.get_script_data()
assert 'all' in data
assert 'g1' in data
assert data['g1'] == {
'hosts': ['h1'],
'children': [],
'vars': {'v1': 'v1'}
}
assert data['all'] == {
'hosts': ['h2'],
'children': ['g1'],
'vars': {'a1': 'a1'}
'hosts': [],
'children': [],
'vars': {
'a1': 'a1'
}
}
def test_grandparent_group(self, inventory):
g1 = inventory.groups.create(name='g1', variables={'v1': 'v1'})
g2 = inventory.groups.create(name='g2', variables={'v2': 'v2'})
@ -109,7 +98,9 @@ class TestInventoryScript:
}
if i < 2:
expected_data['contains_two_hosts'] = {'hosts': ['host{}'.format(i)], 'children': [], 'vars': {}}
assert inventory.get_script_data(slice_number=i + 1, slice_count=3) == expected_data
data = inventory.get_script_data(slice_number=i + 1, slice_count=3)
data.pop('all')
assert data == expected_data
@pytest.mark.django_db