aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorYujun Zhang <zhang.yujunz@zte.com.cn>2017-07-26 14:30:28 +0800
committerYujun Zhang <zhang.yujunz@zte.com.cn>2017-07-26 14:32:46 +0800
commit683831e33bab86dd1f8d6844f7fa2aec5e12b171 (patch)
treeb4152dd8054b3ac9048bba98edf3493bb12d68d9 /tests
parent5bd3241840ff2f2db64f7d5e139d05b011bae941 (diff)
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 <zhang.yujunz@zte.com.cn>
Diffstat (limited to 'tests')
-rw-r--r--tests/conftest.py23
-rw-r--r--tests/unit/api/metric_controller_test.py37
-rw-r--r--tests/unit/api/plan_controller_test.py49
-rw-r--r--tests/unit/cli/cmd_metric_test.py46
-rw-r--r--tests/unit/collector/collector_test.py18
-rw-r--r--tests/unit/collector/logfile_test.py33
-rw-r--r--tests/unit/loader/metric_test.py43
-rw-r--r--tests/unit/loader/plan_test.py52
8 files changed, 0 insertions, 301 deletions
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():
@@ -26,26 +23,6 @@ def benchmarks_root(data_root):
@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 {
"ssl_rsa": {
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