From 4190e36278f71e9f4bc47d9025f8c99db00e9fab Mon Sep 17 00:00:00 2001 From: redref Date: Fri, 3 Feb 2017 22:29:16 +0100 Subject: [PATCH] Add some tests to catalogs --- puppetboard/app.py | 1 - puppetboard/templates/catalogs.json.tpl | 6 +-- test/test_app.py | 49 +++++++++++++++++++++++-- 3 files changed, 48 insertions(+), 8 deletions(-) diff --git a/puppetboard/app.py b/puppetboard/app.py index 08f4947..5244afb 100644 --- a/puppetboard/app.py +++ b/puppetboard/app.py @@ -853,7 +853,6 @@ def catalogs(env, compare): if not app.config['ENABLE_CATALOG']: log.warn('Access to catalog interface disabled by administrator') abort(403) - return return render_template( 'catalogs.html', diff --git a/puppetboard/templates/catalogs.json.tpl b/puppetboard/templates/catalogs.json.tpl index 3554fb1..fa2757a 100644 --- a/puppetboard/templates/catalogs.json.tpl +++ b/puppetboard/templates/catalogs.json.tpl @@ -4,12 +4,10 @@ "recordsFiltered": {{total_filtered}}, "data": [ {% for catalog in catalogs -%} - {%- if catalog_flag %},{%- endif %} - {%- set catalog_flag = True -%} + {%- if not loop.first %},{%- endif -%} [ {%- for column in columns -%} - {%- if column_flag %},{%- endif -%} - {%- set column_flag = True -%} + {%- if not loop.first %},{%- endif -%} {%- if column.attr == 'catalog_timestamp' -%} "{{ catalog.catalog_timestamp }}" {%- elif column.type == 'node' -%} diff --git a/test/test_app.py b/test/test_app.py index 088b95b..1bd0cdf 100644 --- a/test/test_app.py +++ b/test/test_app.py @@ -537,9 +537,6 @@ def test_json_daily_reports_chart_ok(client, mocker): ] } - import logging - logging.error(query_data) - dbquery = MockDbQuery(query_data) mocker.patch.object(app.puppetdb, '_query', side_effect=dbquery.get) @@ -558,3 +555,49 @@ def test_json_daily_reports_chart_ok(client, mocker): cur_day = next_day assert rv.status_code == 200 + + +def test_catalogs_disabled(client, mocker, + mock_puppetdb_environments, + mock_puppetdb_default_nodes): + app.app.config['ENABLE_CATALOG'] = False + rv = client.get('/catalogs') + assert rv.status_code == 403 + + +def test_catalogs_view(client, mocker, + mock_puppetdb_environments, + mock_puppetdb_default_nodes): + app.app.config['ENABLE_CATALOG'] = True + rv = client.get('/catalogs') + assert rv.status_code == 200 + soup = BeautifulSoup(rv.data, 'html.parser') + assert soup.title.contents[0] == 'Puppetboard' + + +def test_catalogs_json(client, mocker, + mock_puppetdb_environments, + mock_puppetdb_default_nodes): + app.app.config['ENABLE_CATALOG'] = True + rv = client.get('/catalogs/json') + assert rv.status_code == 200 + + result_json = json.loads(rv.data.decode('utf-8')) + assert 'data' in result_json + + for line in result_json['data']: + assert len(line) == 3 + + +def test_catalogs_json_compare(client, mocker, + mock_puppetdb_environments, + mock_puppetdb_default_nodes): + app.app.config['ENABLE_CATALOG'] = True + rv = client.get('/catalogs/compare/1234567/json') + assert rv.status_code == 200 + + result_json = json.loads(rv.data.decode('utf-8')) + assert 'data' in result_json + + for line in result_json['data']: + assert len(line) == 3