From 0a3a3045b97eee0583de82b532880b96807bd82a Mon Sep 17 00:00:00 2001 From: Taseer Date: Thu, 29 Jun 2017 05:24:25 +0500 Subject: Integrate Report with CLI. - Migrate fixtures to conftest to be used by multiple files Change-Id: I9a705b93189ac1f2e6fd2fc4e3f05aec7af379f1 Signed-off-by: Taseer Ahmed --- tests/conftest.py | 148 +++++++++++++++++++++ .../plugins/action/calculate_test.py | 120 ----------------- tests/unit/cli/cmd_report_test.py | 34 +---- tests/unit/reporter/console_test.py | 23 ---- 4 files changed, 154 insertions(+), 171 deletions(-) (limited to 'tests') diff --git a/tests/conftest.py b/tests/conftest.py index 32042f24..ddec94b8 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -43,3 +43,151 @@ def collectors_config(plan_config): @pytest.fixture(scope='session') def logfile_config(collectors_config): return collectors_config[0] + + +@pytest.fixture(scope='session') +def metrics(): + return { + "ssl_rsa": { + "rsa_sign": [500], + "rsa_verify": [600] + } + } + + +@pytest.fixture(scope='session') +def metric_spec(): + return { + "name": "ssl_rsa", + "workloads": [ + {"name": "rsa_sign"}, + {"name": "rsa_verify"} + ] + } + + +@pytest.fixture(scope='session') +def section_spec(metric_spec): + return { + "name": "ssl", + "description": "cryptography and SSL/TLS performance", + "metrics": [metric_spec] + } + + +@pytest.fixture(scope='session') +def qpi_spec(section_spec): + return { + "name": "compute", + "description": "QTIP Performance Index of compute", + "sections": [section_spec] + } + + +@pytest.fixture(scope='session') +def rsa_sign_baseline(): + return {'name': 'rsa_sign', 'baseline': '500'} + + +@pytest.fixture(scope='session') +def rsa_verify_baseline(): + return {"name": "rsa_verify", "baseline": 600} + + +@pytest.fixture(scope='session') +def metric_baseline(rsa_sign_baseline, rsa_verify_baseline): + return { + "name": "ssl_rsa", + "workloads": [rsa_sign_baseline, rsa_verify_baseline] + } + + +@pytest.fixture(scope='session') +def section_baseline(metric_baseline): + return { + "name": "ssl", + "metrics": [metric_baseline] + } + + +@pytest.fixture(scope='session') +def qpi_baseline(section_baseline): + return { + "name": "compute-baseline", + "description": "The baseline for compute QPI", + "score": 2048, + "sections": [section_baseline] + } + + +@pytest.fixture(scope='session') +def metric_result(): + return {'score': 1.0, + 'name': 'ssl_rsa', + 'description': 'metric', + 'workloads': [{'description': 'workload', 'name': 'rsa_sign', + 'score': 1.0, 'result': 500}, + {'description': 'workload', 'name': 'rsa_verify', + 'score': 1.0, 'result': 600}]} + + +@pytest.fixture(scope='session') +def section_result(metric_result): + return {'score': 1.0, + 'name': 'ssl', + 'description': 'cryptography and SSL/TLS performance', + 'metrics': [metric_result]} + + +@pytest.fixture(scope='session') +def info(): + return { + "system_info": { + "kernel": "4.4.0-72-generic x86_64 (64 bit)", + "product": "EC600G3", + "os": "Ubuntu 16.04 xenial", + "cpu": "2 Deca core Intel Xeon E5-2650 v3s (-HT-MCP-SMP-)", + "disk": "1200.3GB (25.1% used)", + "memory": "30769.7/128524.1MB" + } + } + + +@pytest.fixture(scope='session') +def spec(): + """ refers to resources/QPI/compute.yaml """ + return { + "sections": [{ + "name": "ssl", + "description": "cryptography and SSL/TLS performance", + "metrics": [{ + "workloads": [ + {"name": "rsa_sign", + "description": "rsa x bits sign per second"}, + {"name": "rsa_verify", + "description": "rsa x bits verify per second"}] + }] + }] + } + + +@pytest.fixture(scope='session') +def qpi_result(section_result, info): + return {'score': 2048, + 'name': 'compute', + 'description': 'QTIP Performance Index of compute', + 'system_info': info, + 'sections': [section_result], + 'spec': "https://git.opnfv.org/qtip/tree/resources/QPI/compute.yaml", + 'baseline': "https://git.opnfv.org/qtip/tree/resources/QPI/compute-baseline.json", + } + + +@pytest.fixture(scope='session') +def aggregated_report(qpi_result): + return { + 'score': 2017, + 'name': 'compute', + 'description': 'POD compute QPI', + 'nodes': [qpi_result] + } diff --git a/tests/unit/ansible_library/plugins/action/calculate_test.py b/tests/unit/ansible_library/plugins/action/calculate_test.py index 2a0b6a7c..b053a4b9 100644 --- a/tests/unit/ansible_library/plugins/action/calculate_test.py +++ b/tests/unit/ansible_library/plugins/action/calculate_test.py @@ -12,126 +12,6 @@ import pytest from qtip.ansible_library.plugins.action import calculate -@pytest.fixture() -def metrics(): - return { - "ssl_rsa": { - "rsa_sign": [500], - "rsa_verify": [600] - } - } - - -@pytest.fixture() -def metric_spec(): - return { - "name": "ssl_rsa", - "workloads": [ - {"name": "rsa_sign"}, - {"name": "rsa_verify"} - ] - } - - -@pytest.fixture() -def section_spec(metric_spec): - return { - "name": "ssl", - "description": "cryptography and SSL/TLS performance", - "metrics": [metric_spec] - } - - -@pytest.fixture() -def qpi_spec(section_spec): - return { - "name": "compute", - "description": "QTIP Performance Index of compute", - "sections": [section_spec] - } - - -@pytest.fixture() -def rsa_sign_baseline(): - return {'name': 'rsa_sign', 'baseline': '500'} - - -@pytest.fixture() -def rsa_verify_baseline(): - return {"name": "rsa_verify", "baseline": 600} - - -@pytest.fixture() -def metric_baseline(rsa_sign_baseline, rsa_verify_baseline): - return { - "name": "ssl_rsa", - "workloads": [rsa_sign_baseline, rsa_verify_baseline] - } - - -@pytest.fixture() -def section_baseline(metric_baseline): - return { - "name": "ssl", - "metrics": [metric_baseline] - } - - -@pytest.fixture() -def qpi_baseline(section_baseline): - return { - "name": "compute-baseline", - "description": "The baseline for compute QPI", - "score": 2048, - "sections": [section_baseline] - } - - -@pytest.fixture() -def metric_result(): - return {'score': 1.0, - 'name': 'ssl_rsa', - 'description': 'metric', - 'workloads': [{'description': 'workload', 'name': 'rsa_sign', - 'score': 1.0, 'result': 500}, - {'description': 'workload', 'name': 'rsa_verify', - 'score': 1.0, 'result': 600}]} - - -@pytest.fixture() -def section_result(metric_result): - return {'score': 1.0, - 'name': 'ssl', - 'description': 'cryptography and SSL/TLS performance', - 'metrics': [metric_result]} - - -@pytest.fixture() -def info(): - return { - "system_info": { - "kernel": "4.4.0-72-generic x86_64 (64 bit)", - "product": "EC600G3", - "os": "Ubuntu 16.04 xenial", - "cpu": "2 Deca core Intel Xeon E5-2650 v3s (-HT-MCP-SMP-)", - "disk": "1200.3GB (25.1% used)", - "memory": "30769.7/128524.1MB" - } - } - - -@pytest.fixture() -def qpi_result(section_result, info): - return {'score': 2048, - 'name': 'compute', - 'description': 'QTIP Performance Index of compute', - 'system_info': info, - 'sections': [section_result], - 'spec': "https://git.opnfv.org/qtip/tree/resources/QPI/compute.yaml", - 'baseline': "https://git.opnfv.org/qtip/tree/resources/QPI/compute-baseline.json", - } - - def test_calc_metric(metric_spec, metrics, metric_baseline, metric_result): assert calculate.calc_metric(metric_spec, metrics['ssl_rsa'], diff --git a/tests/unit/cli/cmd_report_test.py b/tests/unit/cli/cmd_report_test.py index 064ed8fd..e4e68fe0 100644 --- a/tests/unit/cli/cmd_report_test.py +++ b/tests/unit/cli/cmd_report_test.py @@ -7,35 +7,13 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -import pytest -from os import path -from click.testing import CliRunner -from qtip.cli.entry import cli +from qtip.cli.commands import cmd_report as report -@pytest.fixture(scope="module") -def runner(): - return CliRunner() +def test_dhrystone(aggregated_report): + """Test report""" - -@pytest.fixture(scope="module") -def result_path(): - result = path.join(path.dirname(__file__), path.pardir, path.pardir, - 'data/reporter') - return result - - -@pytest.mark.parametrize(['report_name'], [ - ('dhrystone',), - ('whetstone',), - ('dpi',), - ('ramspeed',), - ('ssl',) -]) -def test_dhrystone(report_name, runner, result_path): - """Test dhrystone report""" - - result = runner.invoke(cli, ['report', 'show', report_name, '-p', result_path]) - for line in str(result).split('\n'): - assert len(line) <= 80 + result = report.display_report(aggregated_report, 'ssl', 'compute') + assert result['ss'] == 1.0 + assert result['desc'] == 'cryptography and SSL/TLS performance' diff --git a/tests/unit/reporter/console_test.py b/tests/unit/reporter/console_test.py index 11fb3f71..64e32c4e 100644 --- a/tests/unit/reporter/console_test.py +++ b/tests/unit/reporter/console_test.py @@ -8,7 +8,6 @@ ############################################################################## import pytest -from os import path from qtip.reporter.console import ConsoleReporter @@ -18,27 +17,5 @@ def console_reporter(): return ConsoleReporter({}) -@pytest.fixture -def result_path(): - result = path.join(path.dirname(__file__), path.pardir, path.pardir, - 'data/reporter') - return result - - def test_constructor(console_reporter): assert isinstance(console_reporter, ConsoleReporter) - - -@pytest.mark.parametrize(['template_name'], [ - ('dhrystone',), - ('whetstone',), - ('dpi',), - ('ramspeed',), - ('ssl',) -]) -def test_templates(template_name, console_reporter, result_path): - """ Test dhrystone report""" - - result = console_reporter.render(template_name, result_path) - for line in result.split('\n'): - assert len(line) <= 80 -- cgit 1.2.3-korg