mirror of https://github.com/ansible/ansible.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
2.6 KiB
Python
103 lines
2.6 KiB
Python
import json
|
|
import os
|
|
import pytest
|
|
import sys
|
|
|
|
BASIC_INVENTORY = {
|
|
'all': {
|
|
'hosts': ['foo', 'bar']
|
|
},
|
|
'_meta': {
|
|
'hostvars': {
|
|
'foo': {'hostname': 'foo'},
|
|
'bar': {'hostname': 'bar'}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
class FakeArgs(object):
|
|
debug = False
|
|
write_dumpfile = None
|
|
load_dumpfile = None
|
|
host = False
|
|
list = True
|
|
|
|
|
|
@pytest.fixture
|
|
def vmware_inventory():
|
|
inventory_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', 'contrib', 'inventory'))
|
|
|
|
sys.path.append(inventory_dir)
|
|
|
|
try:
|
|
import vmware_inventory
|
|
except BaseException as ex:
|
|
pytest.skip(ex)
|
|
finally:
|
|
sys.path.remove(inventory_dir)
|
|
|
|
return vmware_inventory
|
|
|
|
|
|
def test_host_info_returns_single_host(vmware_inventory):
|
|
vmw = vmware_inventory.VMWareInventory(load=False)
|
|
vmw.inventory = BASIC_INVENTORY
|
|
foo = vmw.get_host_info('foo')
|
|
bar = vmw.get_host_info('bar')
|
|
assert foo == {'hostname': 'foo'}
|
|
assert bar == {'hostname': 'bar'}
|
|
|
|
|
|
def test_show_returns_serializable_data(vmware_inventory):
|
|
fakeargs = FakeArgs()
|
|
vmw = vmware_inventory.VMWareInventory(load=False)
|
|
vmw.args = fakeargs
|
|
vmw.inventory = BASIC_INVENTORY
|
|
showdata = vmw.show()
|
|
json.loads(showdata)
|
|
|
|
|
|
def test_show_list_returns_serializable_data(vmware_inventory):
|
|
fakeargs = FakeArgs()
|
|
vmw = vmware_inventory.VMWareInventory(load=False)
|
|
vmw.args = fakeargs
|
|
vmw.args.list = True
|
|
vmw.inventory = BASIC_INVENTORY
|
|
showdata = vmw.show()
|
|
json.loads(showdata)
|
|
|
|
|
|
def test_show_list_returns_all_data(vmware_inventory):
|
|
fakeargs = FakeArgs()
|
|
vmw = vmware_inventory.VMWareInventory(load=False)
|
|
vmw.args = fakeargs
|
|
vmw.args.list = True
|
|
vmw.inventory = BASIC_INVENTORY
|
|
showdata = vmw.show()
|
|
expected = json.dumps(BASIC_INVENTORY, indent=2)
|
|
assert showdata == expected
|
|
|
|
|
|
def test_show_host_returns_serializable_data(vmware_inventory):
|
|
fakeargs = FakeArgs()
|
|
vmw = vmware_inventory.VMWareInventory(load=False)
|
|
vmw.args = fakeargs
|
|
vmw.args.host = 'foo'
|
|
vmw.inventory = BASIC_INVENTORY
|
|
showdata = vmw.show()
|
|
json.loads(showdata)
|
|
|
|
|
|
def test_show_host_returns_just_host(vmware_inventory):
|
|
fakeargs = FakeArgs()
|
|
vmw = vmware_inventory.VMWareInventory(load=False)
|
|
vmw.args = fakeargs
|
|
vmw.args.list = False
|
|
vmw.args.host = 'foo'
|
|
vmw.inventory = BASIC_INVENTORY
|
|
showdata = vmw.show()
|
|
expected = BASIC_INVENTORY['_meta']['hostvars']['foo']
|
|
expected = json.dumps(expected, indent=2)
|
|
assert showdata == expected
|