Adding first test case for report

This commit is contained in:
Mike Terzo
2017-01-26 04:35:58 -05:00
parent 86fe05f5f9
commit 4f50811142
2 changed files with 211765 additions and 1 deletions

211719
test/data/test_json_report_ok Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,8 @@
import pytest import pytest
import json import json
import os
from puppetboard import app from puppetboard import app
from pypuppetdb.types import Node from pypuppetdb.types import Node, Report
from puppetboard import default_settings from puppetboard import default_settings
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
@@ -81,6 +82,16 @@ def mock_puppetdb_default_nodes(mocker):
return_value=iter(node_list)) return_value=iter(node_list))
@pytest.fixture
def input_data(request):
data_path = os.path.join(os.path.dirname(os.path.realpath(__file__)),
'data')
data = None
with open('%s/%s' % (data_path, request.function.__name__), "r") as fp:
data = fp.read()
return data
@pytest.fixture @pytest.fixture
def client(): def client():
client = app.app.test_client() client = app.app.test_client()
@@ -326,3 +337,37 @@ def test_radiator_view_division_by_zero(client, mocker):
total = soup.find(class_='total') total = soup.find(class_='total')
assert '0' in total.text assert '0' in total.text
def test_json_report_ok(client, mocker, input_data):
mock_puppetdb_environments(mocker)
mock_puppetdb_default_nodes(mocker)
query_response = json.loads(input_data)
query_data = {
'reports': [
{
'validate': {
'data': query_response[:100],
'checks': {
'limit': 100,
'offset': 0
}
}
}
]
}
dbquery = MockDbQuery(query_data)
mocker.patch.object(app.puppetdb, '_query', side_effect=dbquery.get)
app.puppetdb.last_total = 499
rv = client.get('/reports/json')
assert rv.status_code == 200
result_json = json.loads(rv.data.decode('utf-8'))
assert 'data' in result_json
assert len(result_json['data']) == 100