diff options
author | Yujun Zhang <zhang.yujunz@zte.com.cn> | 2016-12-27 16:57:28 +0800 |
---|---|---|
committer | Yujun Zhang <zhang.yujunz@zte.com.cn> | 2017-01-03 17:34:11 +0800 |
commit | decad5f7fdb212c4f78fc31f00e591eaba104450 (patch) | |
tree | 93ee0cd48f991c83bd9e13a4814cbced2377ca21 /qtip/runner/base.py | |
parent | 0dbc16c41646cbec79b65ec2ac60b8965cd22db9 (diff) |
Add module skeletons
- Remove `suite` and `case` which seems redundant at the moment
- Rename `qtip.spec` to `qtip.loader` since the class loads spec
- Add driver `sample` which will generate random performance data
- Add collector `logfile` which will collect result from log files
- Add reporter `console` which will print report to console
- Add exception classes
See updated class diagram in https://wiki.opnfv.org/display/qtip/Design
JIRA: QTIP-148
JIRA: QTIP-193
Change-Id: Idf751d33428176a26224e4443100a142feda6f32
Signed-off-by: Yujun Zhang <zhang.yujunz@zte.com.cn>
Diffstat (limited to 'qtip/runner/base.py')
-rw-r--r-- | qtip/runner/base.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/qtip/runner/base.py b/qtip/runner/base.py new file mode 100644 index 00000000..07fba104 --- /dev/null +++ b/qtip/runner/base.py @@ -0,0 +1,45 @@ +############################################################################## +# 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 +############################################################################## + +from qtip.base.constant import PkgName, PropName +from qtip.base.error import NotFound +from qtip.collector.logfile import LogfileCollector +from qtip.driver.sample import SampleDriver +from qtip.loader.base import BaseLoader +from qtip.reporter.console import ConsoleReporter + + +class BaseRunner(BaseLoader): + def __init__(self, name, paths=None, config=None): + super(BaseRunner, self).__init__(name, paths=paths) + if config is None: + config = self.content[PropName.CONFIG] + + driver_name = config[PropName.DRIVER] + collector_name = config[PropName.COLLECTOR] + reporter_name = config[PropName.REPORTER] + + # TODO(yujunz) dynamically load modules by name + + if driver_name == 'sample': + self.driver = SampleDriver() + else: + raise NotFound(driver_name, package=PkgName.DRIVER) + + if collector_name == 'logfile': + self.collector = LogfileCollector() + else: + raise NotFound(collector_name, + package=PkgName.COLLECTOR) + + if reporter_name == 'console': + self.reporter = ConsoleReporter() + else: + raise NotFound(reporter_name, + package=PkgName.REPORTER) |