Inventory page testing

This commit is contained in:
redref
2017-02-04 22:21:01 +01:00
parent 709d14e9a2
commit 507df87234
2 changed files with 52 additions and 6 deletions

View File

@@ -418,12 +418,12 @@ def inventory_ajax(env):
total = len(fact_data) total = len(fact_data)
return render_template( return render_template(
'inventory.json.tpl', 'inventory.json.tpl',
draw=draw, draw=draw,
total=total, total=total,
total_filtered=total, total_filtered=total,
fact_data=fact_data, fact_data=fact_data,
columns=fact_names) columns=fact_names)
@app.route('/node/<node_name>/', @app.route('/node/<node_name>/',

View File

@@ -620,3 +620,49 @@ def test_catalogs_json_compare(client, mocker,
"action": "/catalogs/compare/node-unreported...node-%s" % "action": "/catalogs/compare/node-unreported...node-%s" %
found_status}) found_status})
assert len(val) == 1 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)