Merge pull request #355 from redref/inventory

Inventory page revamp with paging
This commit is contained in:
Mike Terzo
2017-06-10 03:37:00 -04:00
committed by GitHub
4 changed files with 129 additions and 49 deletions

View File

@@ -620,3 +620,49 @@ def test_catalogs_json_compare(client, mocker,
"action": "/catalogs/compare/node-unreported...node-%s" %
found_status})
assert len(val) == 1
def test_inventory_view(client, mocker, mock_puppetdb_environments):
rv = client.get('/inventory')
assert rv.status_code == 200
soup = BeautifulSoup(rv.data, 'html.parser')
assert soup.title.contents[0] == 'Puppetboard'
def test_inventory_json(client, mocker, mock_puppetdb_environments):
facts = ['fqdn', 'ipaddress', 'lsbdistdescription', 'hardwaremodel',
'kernelrelease', 'puppetversion']
values = [
['node-1', 'X.X.X.X', 'os7', 'server', '4.3', 'X.X.X'],
['node-2', 'X.X.X.X', 'os5', 'server', '4.1', 'X.X.X'],
['node-3', 'X.X.X.X', 'os6', 'server', '4.2', 'X.X.X'],
['node-4', 'X.X.X.X', 'os4', 'server', '4.3', 'X.X.X'],
]
query_data = {'facts': []}
query_data['facts'].append([])
for i, value in enumerate(values):
for idx, column in enumerate(facts):
query_data['facts'][0].append({
'certname': value[0],
'name': column,
'value': value[idx],
'environment': 'production'
})
dbquery = MockDbQuery(query_data)
mocker.patch.object(app.puppetdb, '_query', side_effect=dbquery.get)
rv = client.get('/inventory/json')
assert rv.status_code == 200
result_json = json.loads(rv.data.decode('utf-8'))
assert 'data' in result_json
for value in values:
for line in result_json['data']:
if value[0] in line[0]:
assert line[1:] == value[1:]
break
else:
raise Exception("Input %s not found" % value)