From 245b6f4070d1b3b5124a184cb6442b55000fd321 Mon Sep 17 00:00:00 2001 From: Yujun Zhang Date: Thu, 23 Feb 2017 20:51:38 +0800 Subject: Fix bug when no paths is given for Plan constructor FileLoader was trying to initialize abspath by finding a matched name from abspath which will lead to an exception. Use default paths of class instead. Change-Id: I8ca2122e97edd734aa68b4c6b12196960842313b Signed-off-by: Yujun Zhang --- tests/data/benchmarks/plan/sample.yaml | 14 ++++++++++++++ tests/unit/loader/plan_test.py | 17 ++++++++++------- 2 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 tests/data/benchmarks/plan/sample.yaml (limited to 'tests') diff --git a/tests/data/benchmarks/plan/sample.yaml b/tests/data/benchmarks/plan/sample.yaml new file mode 100644 index 00000000..04e8caf9 --- /dev/null +++ b/tests/data/benchmarks/plan/sample.yaml @@ -0,0 +1,14 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation 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 +############################################################################## +name: sample +description: sample benchmark plan for testing default path +config: + collectors: [] + reporters: [] +QPIs: [] diff --git a/tests/unit/loader/plan_test.py b/tests/unit/loader/plan_test.py index 70ae2ad5..4c92e8d5 100644 --- a/tests/unit/loader/plan_test.py +++ b/tests/unit/loader/plan_test.py @@ -13,15 +13,18 @@ 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 -from qtip.loader.plan import QPISpec -def test_init(plan): - assert plan.name == 'doctor performance profiling' - assert isinstance(plan.content, dict) - for qpi in plan.qpis: - assert isinstance(qpi, QPISpec) +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)' \ @@ -30,7 +33,7 @@ def test_init(plan): def test_list_all(benchmarks_root): plan_list = list(Plan.list_all(paths=[benchmarks_root])) - assert len(plan_list) is 2 + assert len(plan_list) is 3 for desc in plan_list: assert PlanProp.NAME in desc assert PlanProp.ABSPATH in desc -- cgit 1.2.3-korg