From 683831e33bab86dd1f8d6844f7fa2aec5e12b171 Mon Sep 17 00:00:00 2001 From: Yujun Zhang Date: Wed, 26 Jul 2017 14:30:28 +0800 Subject: Deprecate plan and metric loader - qtip test plan is now automaticlly generated by `qtip create`. The original way of loading plans is no longer valid - metric specs are now embedded in qpi spec, no separated loader are required now JIRA: QTIP-258 Change-Id: I768d75b014163ce060faff00f415a1cdc437ce73 Signed-off-by: Yujun Zhang --- tests/conftest.py | 23 -------------- tests/unit/api/metric_controller_test.py | 37 ----------------------- tests/unit/api/plan_controller_test.py | 49 ------------------------------ tests/unit/cli/cmd_metric_test.py | 46 ---------------------------- tests/unit/collector/collector_test.py | 18 ----------- tests/unit/collector/logfile_test.py | 33 -------------------- tests/unit/loader/metric_test.py | 43 -------------------------- tests/unit/loader/plan_test.py | 52 -------------------------------- 8 files changed, 301 deletions(-) delete mode 100644 tests/unit/api/metric_controller_test.py delete mode 100644 tests/unit/api/plan_controller_test.py delete mode 100644 tests/unit/cli/cmd_metric_test.py delete mode 100644 tests/unit/collector/collector_test.py delete mode 100644 tests/unit/collector/logfile_test.py delete mode 100644 tests/unit/loader/metric_test.py delete mode 100644 tests/unit/loader/plan_test.py (limited to 'tests') diff --git a/tests/conftest.py b/tests/conftest.py index ddec94b8..8e812d66 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -11,9 +11,6 @@ from os import path import pytest -from qtip.loader.plan import Plan -from qtip.loader.plan import PlanProp - @pytest.fixture(scope='session') def data_root(): @@ -25,26 +22,6 @@ def benchmarks_root(data_root): return path.join(data_root, 'benchmarks') -@pytest.fixture(scope='session') -def plan(benchmarks_root): - return Plan('doctor.yaml', [benchmarks_root]) - - -@pytest.fixture(scope='session') -def plan_config(plan): - return plan.content[PlanProp.CONFIG] - - -@pytest.fixture(scope='session') -def collectors_config(plan_config): - return plan_config[PlanProp.COLLECTORS] - - -@pytest.fixture(scope='session') -def logfile_config(collectors_config): - return collectors_config[0] - - @pytest.fixture(scope='session') def metrics(): return { diff --git a/tests/unit/api/metric_controller_test.py b/tests/unit/api/metric_controller_test.py deleted file mode 100644 index caba7972..00000000 --- a/tests/unit/api/metric_controller_test.py +++ /dev/null @@ -1,37 +0,0 @@ -############################################################################## -# Copyright (c) 2017 akhil.batra@research.iiit.ac.in and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -import httplib -import json - -from qtip.base.constant import BaseProp - - -def test_get_list_metrics(app_client): - response_success = app_client.get("/v1.0/metrics") - assert response_success.status_code == httplib.OK - metric_list = json.loads(response_success.data)['metrics'] - assert len(metric_list) > 0 - assert metric_list[0].endswith('.yaml') - - -def test_get_metric(app_client): - response_success = app_client.get("/v1.0/metrics/dpi.yaml") - assert response_success.status_code == httplib.OK - metric_data = json.loads(response_success.data) - assert BaseProp.NAME in metric_data - assert BaseProp.WORKLOADS in metric_data - assert isinstance(metric_data[BaseProp.WORKLOADS], list) - - -def test_get_metric_not_found(app_client): - response_not_found = app_client.get("/v1.0/metrics/fake.yaml") - response_data = json.loads(response_not_found.data) - assert response_not_found.status_code == httplib.NOT_FOUND - assert response_data['title'] == "Metric not found" diff --git a/tests/unit/api/plan_controller_test.py b/tests/unit/api/plan_controller_test.py deleted file mode 100644 index 136bd3c6..00000000 --- a/tests/unit/api/plan_controller_test.py +++ /dev/null @@ -1,49 +0,0 @@ -############################################################################## -# Copyright (c) 2017 akhil.batra@research.iiit.ac.in and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -import httplib -import json - - -from qtip.loader.plan import PlanProp - - -def test_invalid_url(app_client): - response_url_not_found = app_client.get("/v1.0/fakeresource") - assert response_url_not_found.status_code == httplib.NOT_FOUND - - -def test_get_list_plans(app_client): - response_success = app_client.get("/v1.0/plans") - assert response_success.status_code == httplib.OK - plan_list = json.loads(response_success.data)['plans'] - assert len(plan_list) > 0 - assert plan_list[0].endswith('.yaml') - - -def test_get_plan(app_client): - response_success = app_client.get("/v1.0/plans/sample.yaml") - assert response_success.status_code == httplib.OK - plan_data = json.loads(response_success.data) - assert PlanProp.NAME in plan_data - assert PlanProp.DESCRIPTION in plan_data - assert PlanProp.CONFIG in plan_data - assert PlanProp.QPIS in plan_data - - -def test_get_plan_not_found(app_client): - response_not_found = app_client.get("/v1.0/plans/fake.yaml") - response_data = json.loads(response_not_found.data) - assert response_not_found.status_code == httplib.NOT_FOUND - assert response_data['title'] == "Plan not found" - - -def test_runner_not_implemented(app_client): - response_error = app_client.post("/v1.0/plans/fake.yaml?action=run", follow_redirects=False) - assert response_error.status_code == httplib.NOT_IMPLEMENTED diff --git a/tests/unit/cli/cmd_metric_test.py b/tests/unit/cli/cmd_metric_test.py deleted file mode 100644 index c92e944b..00000000 --- a/tests/unit/cli/cmd_metric_test.py +++ /dev/null @@ -1,46 +0,0 @@ -############################################################### -# Copyright (c) 2017 taseer94@gmail.com and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -import pytest - -from click.testing import CliRunner -from qtip.cli.entry import cli - - -@pytest.fixture(scope="module") -def runner(): - return CliRunner() - - -def test_list(runner): - result = runner.invoke(cli, ['metric', 'list']) - assert 'dhrystone' and 'whetstone' and 'dpi' and \ - 'ramspeed' and 'fake-metric' and 'ssl' \ - in result.output - - -def test_run(runner): - result = runner.invoke(cli, ['metric', 'run', 'fake-metric']) - assert result.output == '' - - result = runner.invoke(cli, ['metric', 'run']) - assert 'Missing argument "name".' in result.output - - -def test_show(runner): - result = runner.invoke(cli, ['metric', 'show', 'dhrystone']) - assert 'Name: dhrystone' in result.output - assert 'Description: A synthetic computing benchmark program intended to be representative of' \ - 'system (integer) programming.' - - result = runner.invoke(cli, ['metric', 'show']) - assert 'Missing argument "name".' in result.output - - result = runner.invoke(cli, ['metric', 'show', 'xyz']) - assert "ERROR: metric spec: xyz not found" in result.output diff --git a/tests/unit/collector/collector_test.py b/tests/unit/collector/collector_test.py deleted file mode 100644 index 17fe1af1..00000000 --- a/tests/unit/collector/collector_test.py +++ /dev/null @@ -1,18 +0,0 @@ -############################################################################## -# Copyright (c) 2017 ZTE Corp and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - - -from qtip.loader.plan import load_collector -from qtip.collector import CollectorProp as CProp - - -def test_load_collector(collectors_config): - for c in collectors_config: - collector = load_collector(c[CProp.TYPE]) - assert collector.TYPE == c[CProp.TYPE] diff --git a/tests/unit/collector/logfile_test.py b/tests/unit/collector/logfile_test.py deleted file mode 100644 index a76aa3ee..00000000 --- a/tests/unit/collector/logfile_test.py +++ /dev/null @@ -1,33 +0,0 @@ -############################################################################## -# Copyright (c) 2017 ZTE Corp and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -import pytest - -from qtip.collector.logfile import LogfileCollector - - -@pytest.fixture -def logfile_collector(logfile_config, plan): - return LogfileCollector(logfile_config, plan) - - -def test_run(logfile_collector): - collected = logfile_collector.run() - assert collected['groupdict'] == { - 'event_posted': '1482894965.3', - 'host_down': '1482894965.51', - 'network_down': '1482894965.164096803', - 'notified': '1482894965.63', - 'vm_error': '1482894965.3' - } - assert list(collected['groups']) == ['1482894965.63', - '1482894965.3', - '1482894965.3', - '1482894965.51', - '1482894965.164096803'] diff --git a/tests/unit/loader/metric_test.py b/tests/unit/loader/metric_test.py deleted file mode 100644 index 619d5e00..00000000 --- a/tests/unit/loader/metric_test.py +++ /dev/null @@ -1,43 +0,0 @@ -############################################################### -# Copyright (c) 2016 ZTE Corp and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -import pytest - -from qtip.base.constant import BaseProp -from qtip.loader.metric import MetricSpec - - -@pytest.fixture(scope='module') -def metric_spec(benchmarks_root): - return MetricSpec('dhrystone.yaml', paths=[benchmarks_root]) - - -def init_test(metric_spec): - assert metric_spec.name == 'dhrystone' - - with pytest.raises(TypeError) as excinfo: - MetricSpec() - assert '__init__() takes at least 2 arguments (1 given)' \ - in str(excinfo.value) - - -def list_all_test(benchmarks_root): - metric_list = list(MetricSpec.list_all(paths=[benchmarks_root])) - assert len(metric_list) is 6 - for desc in metric_list: - assert BaseProp.NAME in desc - assert BaseProp.ABSPATH in desc - assert BaseProp.ABSPATH is not None - - -def content_test(metric_spec): - content = metric_spec.content - assert BaseProp.NAME in content - assert BaseProp.WORKLOADS in content - assert isinstance(content[BaseProp.WORKLOADS], list) diff --git a/tests/unit/loader/plan_test.py b/tests/unit/loader/plan_test.py deleted file mode 100644 index 4c92e8d5..00000000 --- a/tests/unit/loader/plan_test.py +++ /dev/null @@ -1,52 +0,0 @@ -############################################################################## -# Copyright (c) 2016 ZTE Corp and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -import pytest - -from qtip.collector.logfile import LogfileCollector -from qtip.loader.plan import load_collector -from qtip.loader.plan import Plan -from qtip.loader.plan import PlanProp - - -def test_construct(benchmarks_root): - sample = Plan('sample.yaml') - assert isinstance(sample, Plan) - - # fixture can not be used in pytest.mark.parametrized - sample = Plan('sample.yaml', [benchmarks_root]) - assert isinstance(sample, Plan) - - -def test_invalid_construct(): - with pytest.raises(TypeError) as excinfo: - Plan() - assert '__init__() takes at least 2 arguments (1 given)' \ - in str(excinfo.value) - - -def test_list_all(benchmarks_root): - plan_list = list(Plan.list_all(paths=[benchmarks_root])) - assert len(plan_list) is 3 - for desc in plan_list: - assert PlanProp.NAME in desc - assert PlanProp.ABSPATH in desc - assert PlanProp.ABSPATH is not None - - -def test_content(plan): - content = plan.content - assert PlanProp.NAME in content - assert PlanProp.DESCRIPTION in content - assert PlanProp.CONFIG in content - assert PlanProp.QPIS in content - - -def test_load_collector(): - assert load_collector(LogfileCollector.TYPE) is LogfileCollector -- cgit 1.2.3-korg