aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2017-02-14Merge "Bugfix: write_json_to_file: use json.dump with files"Jing Lu1-1/+2
2017-02-14Merge "nsb: move NSB root to constant, add unittest"Jing Lu2-7/+16
2017-02-14Merge "vnf_generic: convert sshmanager to class"Jing Lu2-29/+29
2017-02-14Merge "test_tg_text: fix indentation"Jing Lu1-1/+1
2017-02-14Merge "vnfdgen: replace six.iteritems() with .items()"Jing Lu1-3/+3
2017-02-14Merge "test_vnf_generic: fix unitests when files are present"Jing Lu1-74/+92
2017-02-14Merge "Bugfix: apex_lake: sort json keys for git"Jing Lu3-6/+9
2017-02-14Merge "test_env_action: use dict literal"Jing Lu1-1/+1
2017-02-14set log file to store debug inforexlee87761-0/+2
so the debug info can be pushed into artifacts JIRA: YARDSTICK-507 Change-Id: I35f50e69adc0125f6136aab3ca0e35e2d9500112 Signed-off-by: rexlee8776 <limingjiang@huawei.com>
2017-02-13Update CLI Command in yardstick TC019, TC045~TC048tjuyinkanglin5-6/+6
JIRA: YARDSTICK-545 Change-Id: Ifd3348e029f0ddbfa0117b4eef4493d443a4de4d Signed-off-by: tjuyinkanglin <14_ykl@tongji.edu.cn>
2017-02-13Merge "Push yardstick debug log into the artifacts"Kubi2-1/+6
2017-02-13New reliability/availability testcase - IP datagram error rate and etc.JingLu56-0/+345
JIRA: YARDSTICK-534 This test case uses nstat to monitor network metrics provided by the kernel in a host and calculate IP datagram error rate, ICMP message error rate, TCP segment error rate and UDP datagram error rate. Change-Id: I2fe6457bb5c95d0446c1463991ae31cc664b09f8 Signed-off-by: JingLu5 <lvjing5@huawei.com>
2017-02-10Bux: task_id parameter from API can not pass to yardstick corechenjiankun1-1/+1
JIRA: JIRA: YARDSTICK-531 Now in API entry the task_id parameter will not pass to yardstick core. I fix it by pass task_id to yardstick.benchmark.core.task.start() method. Change-Id: Icf58f2f68549ca3314d6ec0f118b360537126d41 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-02-10Merge "KVMFORNFV: Implementing test suites for kvmfornfv ovs+dpdk+barometer ↵Jing Lu2-0/+100
scenarios."
2017-02-10KVMFORNFV: Implementing test suites for kvmfornfv ovs+dpdk+barometer scenarios.Navya2-0/+100
This patch implements test suites for kvmfornfv os-nosdn-kvm_ovs_dpdk_bar-ha and os-nosdn-kvm_ovs_dpdk_bar-noha scenarios. Change-Id: Idb7d360aa5b91a15d1c69566418a9da4b68db7ab Signed-off-by: Navya Bathula <navyax.bathula@intel.com>
2017-02-10Merge "uwsgi: move init_db to uwsgi entry point"Jing Lu2-4/+9
2017-02-09fix super() calls, must use explicit class nameRoss Brattain5-7/+7
self.__class__ is not correct. For Python 2 we have to explicitly use the class name see http://stackoverflow.com/questions/4235078/how-to-avoid-infinite-recursion-with-super Change-Id: I584ca565707b7331c1742fb33c8b524f7b7c9bf9 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-02-09Fix: yardstick-docker-build-push-master failureJingLu51-0/+1
JIRA: YARDSTICK-552 Change-Id: I5c006b2fcbffb6a3904c378ab0557b5ce437d9ed Signed-off-by: JingLu5 <lvjing5@huawei.com>
2017-02-08remove trex install from run_tests.sh.Ross Brattain1-23/+0
We have mocked out all the Trex imports, so we don't need to download the Trex library It doesn't really make sense to down external libraries each time we run unittests. Trex is a large stand-alone package and shouldn't really be used during unittests Importing Trex caused some odd pyzmq import errors on Python 3 File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master /trex/scripts/external_libs/pyzmq-14.5.0/python3/fedora18 /64bit/zmq/backend/cython/__init__.py", line 6, in <module> from . import (constants, error, message, context, ImportError: cannot import name 'constants' Change-Id: I2ed06c0f88061baeff9ec96534cc59cca81924cc Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-02-08uwsgi: move init_db to uwsgi entry pointRoss Brattain2-4/+9
uwsgi will call the 'callable' function which should normally be Flask.__call__(). But we need to init the db first, so make a wrapper function that inits the db and then calls app() Also refactor add_resource into for loop instead of reduce. reduce is not really approriate here since we aren't consuming the return value JIRA: YARDSTICK-543 Change-Id: I692d6d42de09f7d6ecf1a67a22e3019d97a4f3ca Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-02-07more logging fixesRoss Brattain5-25/+23
don't use .format() with logging, use regular %s logginer formatter Change-Id: I1ce0d81cc3f81c35003ef453e82c57faeb46c49f Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-02-08test_env_action: use dict literalRoss Brattain1-1/+1
use literal forms when possible Change-Id: I2d815f40007aa2259f3f3bcb2b9cd84a11027422 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-02-08Bugfix: apex_lake: sort json keys for gitRoss Brattain3-6/+9
experiment_1.yaml.json are in git and everytime the unnitests are run the json file is re-generated with a slightly different key order so it make the git directory dirty. use sort_keys=True to try to maintain a consistent json file so git doesn't detect a difference Change-Id: I7859664e00561e8db032849a6664fb933a36702b Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-02-08pylint fixes: remove redundant parens, fix comparison orderRoss Brattain7-9/+9
removed redundant parens in if and while clauses use var != constant, not constant != var. Python doesn't allow for assignment in if statements, so we don't have to use the old C workarounds remove unwanted commas use raw strings for regexps with backslashes, e.g. r'\s' instead of '\s' Change-Id: I7aad645dd3d7f4b4b62f4e4510a425611c9d28f2 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-02-08nsb: move NSB root to constant, add unittestRoss Brattain2-7/+16
add unittest for non-None default fixup get_nsb_option to return default correctly. use NSB_ROOT for all paths Change-Id: Idd1951a8d436bc49c30d59d84ca12a5f26e9148f Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-02-08test_vnf_generic: fix unitests when files are presentRoss Brattain1-74/+92
replace paths with empty strings so unittests see the Exception they expect when the files are not present Otherwise unitests are dependent on local filesystem state fix pylint issues, adjust formatting removed duplicate key Change-Id: I7857988c6e6bf586b0eb403fb1d3a3da7f170cbf Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-02-08vnfdgen: replace six.iteritems() with .items()Ross Brattain1-3/+3
Openstack python3 style guide prefers to not use six.iteritems() but instead use data.items() for all cases. We should follow the Openstack guides since OPNFV is aligned with Openstack https://wiki.openstack.org/wiki/Python3#Port_Python_2_code_to_Python_3 Common patterns: * Replace "for key in dict.iterkeys()" with "for key in dict" * Replace dict.iteritems() with dict.items() * Replace dict.itervalues() with dict.values() Change-Id: I99b0505199a568771341658caf8b71c1896db9cd Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-02-08vnf_generic: replace list comprehension with generator expressionRoss Brattain1-3/+3
no need to build a list, just use next Change-Id: I8a899ac538849b765f12bebda4fb8c89c84f333e Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-02-08vnf_generic: convert sshmanager to classRoss Brattain2-29/+29
@contextmanager have an issue with respect to exceptions that makes them not suitable for real usage. @contextmanager uses yield to create a generator and then uses generator.throw() to raise any exceptions. Exceptions thrown from generators loose their call stack due to the way generators work, so any exception inside a context manager is harder to debug. For this reason we don't use @contextmanager and instead always define a new class with __enter__ and __exit__. There is sample code that demonstrates the issue with @contextmanager and generator.throw() here https://gist.github.com/rbbratta/e28b6e64a4551522c3ac9815ca7f25f0 Change-Id: I5383c01f40a63e33680112f39b5bd9c858e328f1 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-02-08Bugfix: write_json_to_file: use json.dump with filesRoss Brattain1-1/+2
In python3 file objects automatically handle encoding to utf-8 and expect string, not bytes, so use regular json.dump() with the file object We should only use dump_as_bytes to replace json.dumps(), not to replace json.dump() This fixes Python3 issue: Traceback (most recent call last): File "yardstick/main.py", line 52, in <module> main() File "yardstick/main.py", line 49, in main YardstickCLI().main(sys.argv[1:]) File "yardstick/yardstick/cmd/cli.py", line 167, in main self._dispath_func_notask() File "yardstick/yardstick/cmd/cli.py", line 145, in _dispath_func_notask func(CONF.category) File "yardstick/yardstick/cmd/commands/task.py", line 48, in do_start self._init_result_file() File "yardstick/yardstick/cmd/commands/task.py", line 57, in _init_result_file write_json_to_file(consts.DEFAULT_OUTPUT_FILE, data) File "yardstick/yardstick/common/utils.py", line 152, in write_json_to_file write_file(path, jsonutils.dump_as_bytes(data), mode) File "yardstick/yardstick/common/utils.py", line 157, in write_file f.write(data) TypeError: write() argument must be str, not bytes Change-Id: I573419be25d8fa1f015e1507730ba66c05f86686 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-02-08test_tg_text: fix indentationRoss Brattain1-1/+1
flake8 error Change-Id: Ia4c90c2703335123ea48c8421a84d7288126dcf6 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-02-08Proposing Trevor Cooper as a commiter in yardstickkubi1-0/+1
Trevor Cooper has contributed greatly to yardstick D release. Achievement/Contributions include: Vsperf integration with yardstick. NSB integration coordination. Host US slot yardstick weekly meeting. Draft Stress Test proposal in testperf. Draft new Testing Projects Ecosystem graph. Change-Id: I783335a77cfe3926c0c8ff76174ef3cc4f203fd6 Signed-off-by: kubi <jean.gaoliang@huawei.com>
2017-02-08Proposing Ross Brattain as a commiter in yardstickkubi1-0/+1
Ross has contributed greatly to yardstick D release. Achievement/Contributions include: Provided quite many high-quality review comments. Prepare Yardstick for Python3 Support Vsperf integration with yardstick. Support NSB integration. Jenkins verify test evolvement. Yardstick Architecture Improvement. LOG system unified. https://gerrit.opnfv.org/gerrit/#/q/project:yardstick+owner:%22Ross+Brattain+%253Cross.b.brattain%2540intel.com%253E%22 Change-Id: Ided9c95e856269277ff09572e92e9fda7288734e Signed-off-by: kubi <jean.gaoliang@huawei.com>
2017-02-07Pass environment variables of proxy to toxDeepak S1-0/+1
When a development environment is under a proxy, tox is failed even if environment variables of the proxy are set. Change-Id: Ia6f8f2a1f215fc4c861d7dbc7a61dcd6973fb3cb Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-02-07fix unittests failures due to py3Deepak S5-15/+10
Traceback (most recent call last): File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/tests/unit/network_services/vnf_generic/vnf/test_vpe_vnf.py", line 306, in test_instantiate self.context_cfg)) AssertionError: 0 != None Traceback (most recent call last): File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/tests/unit/network_services/vnf_generic/vnf/test_base.py", line 55, in test_clear self.assertEqual(queue_file_wrapper.q_out.empty(), True) File "/usr/lib/python3.5/unittest/case.py", line 820, in assertEqual assertion_func(first, second, msg=msg) File "/usr/lib/python3.5/unittest/case.py", line 813, in _baseAssertEqual raise self.failureException(msg) AssertionError: False != True Traceback (most recent call last): File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/tests/unit/network_services/vnf_generic/vnf/test_tg_trex.py", line 321, in test_run_traffic self.assertEqual(True, result) File "/usr/lib/python3.5/unittest/case.py", line 820, in assertEqual assertion_func(first, second, msg=msg) File "/usr/lib/python3.5/unittest/case.py", line 813, in _baseAssertEqual raise self.failureException(msg) AssertionError: True != False Traceback (most recent call last): File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_trex.py", line 369, in test_run_traffic self.assertEqual(True, result) File "/usr/lib/python3.5/unittest/case.py", line 820, in assertEqual\ assertion_func(first, second, msg=msg) File "/usr/lib/python3.5/unittest/case.py", line 813, in _baseAssertEqual\ raise self.failureException(msg) AssertionError: True != False Change-Id: I68340196b8cc9f0fc2e4e0ef1022e8098fc860f0 Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-02-07fix unittests, mock trex_stl_lib, fix raw_input, divisionRoss Brattain11-43/+440
replace raw_input with six.moves.raw_input fix raw_input mock force float division in python 2 re-added trex download to try to workaround coverage failing try installing pyzmq=14.5.0 and see if that helps trex compatibility ====================================================================== ERROR: test__fill_traffic_profile (benchmark.scenarios.networking.test_vnf_generic.TestNetworkServiceTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/tests/unit/benchmark/scenarios/networking/test_vnf_generic.py", line 399, in test__fill_traffic_profile self.context_cfg)) File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/yardstick/benchmark/scenarios/networking/vnf_generic.py", line 144, in _fill_traffic_profile return TrafficProfile.get(traffic_profile) File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/yardstick/network_services/traffic_profile/base.py", line 35, in get "yardstick.network_services.traffic_profile") File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/yardstick/common/utils.py", line 86, in import_modules_from_package try_append_module(module_name, sys.modules) File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/yardstick/common/utils.py", line 70, in try_append_module modules[name] = importutils.import_module(name) File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/.tox/py3/lib/python3.5/site-packages/oslo_utils/importutils.py", line 73, in import_module __import__(import_str) File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/yardstick/network_services/traffic_profile/rfc2544.py", line 19, in <module> from yardstick.network_services.traffic_profile.traffic_profile \ File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/yardstick/network_services/traffic_profile/traffic_profile.py", line 24, in <module> from stl.trex_stl_lib.trex_stl_client import STLStream File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/trex/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_client.py", line 7, in <module> from .trex_stl_jsonrpc_client import JsonRpcClient, BatchMessage File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/trex/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_jsonrpc_client.py", line 3, in <module> import zmq File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/trex/scripts/external_libs/pyzmq-14.5.0/python3/fedora18/64bit/zmq/__init__.py", line 49, in <module> from zmq import backend File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/trex/scripts/external_libs/pyzmq-14.5.0/python3/fedora18/64bit/zmq/backend/__init__.py", line 41, in <module> reraise(*exc_info) File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/trex/scripts/external_libs/pyzmq-14.5.0/python3/fedora18/64bit/zmq/utils/sixcerpt.py", line 34, in reraise raise value File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/trex/scripts/external_libs/pyzmq-14.5.0/python3/fedora18/64bit/zmq/backend/__init__.py", line 29, in <module> _ns = select_backend(first) File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/trex/scripts/external_libs/pyzmq-14.5.0/python3/fedora18/64bit/zmq/backend/select.py", line 27, in select_backend mod = __import__(name, fromlist=public_api) File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/trex/scripts/external_libs/pyzmq-14.5.0/python3/fedora18/64bit/zmq/backend/cython/__init__.py", line 6, in <module> from . import (constants, error, message, context, ImportError: cannot import name 'constants' ====================================================================== ERROR: network_services.vnf_generic.vnf.test_tg_trex (unittest.loader._FailedTest) ---------------------------------------------------------------------- ImportError: Failed to import test module: network_services.vnf_generic.vnf.test_tg_trex Traceback (most recent call last): File "/usr/lib/python3.5/unittest/loader.py", line 428, in _find_test_path module = self._get_module_from_name(name) File "/usr/lib/python3.5/unittest/loader.py", line 369, in _get_module_from_name __import__(name) File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/tests/unit/network_services/vnf_generic/vnf/test_tg_trex.py", line 24, in <module> from stl.trex_stl_lib.trex_stl_client import STLClient File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/trex/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_client.py", line 7, in <module> from .trex_stl_jsonrpc_client import JsonRpcClient, BatchMessage File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/trex/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_jsonrpc_client.py", line 3, in <module> import zmq File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/trex/scripts/external_libs/pyzmq-14.5.0/python3/fedora18/64bit/zmq/__init__.py", line 49, in <module> from zmq import backend File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/trex/scripts/external_libs/pyzmq-14.5.0/python3/fedora18/64bit/zmq/backend/__init__.py", line 41, in <module> reraise(*exc_info) File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/trex/scripts/external_libs/pyzmq-14.5.0/python3/fedora18/64bit/zmq/utils/sixcerpt.py", line 34, in reraise raise value File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/trex/scripts/external_libs/pyzmq-14.5.0/python3/fedora18/64bit/zmq/backend/__init__.py", line 29, in <module> _ns = select_backend(first) File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/trex/scripts/external_libs/pyzmq-14.5.0/python3/fedora18/64bit/zmq/backend/select.py", line 27, in select_backend mod = __import__(name, fromlist=public_api) File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/trex/scripts/external_libs/pyzmq-14.5.0/python3/fedora18/64bit/zmq/backend/cython/__init__.py", line 6, in <module> from . import (constants, error, message, context, ImportError: cannot import name 'constants' Change-Id: I832bf8c912dea6d85131ee6603b408b3198cef2f Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-02-07Merge "KVMFORNFV: Implementing test suites for kvmfornfv ovs+dpdk scenarios."Jing Lu2-0/+100
2017-02-06Merge "Adding simple cmdline to run the Network service testcases"Kubi2-0/+331
2017-02-06Merge "Setup yardstick_virtual environments for Network Service Testing"Kubi1-0/+244
2017-02-06Merge "Adding sample Thoughput Test case for vPE."Kubi15-0/+1841
2017-02-06Merge "Adding vPE VNF class aligned with IETS per-deploy senarios"Kubi7-0/+2042
2017-02-06Merge "Adding Trex rfc2544 VNF class to initate Traffic for throughput"Kubi4-0/+735
2017-02-06Merge "Adding trex trafficgen example."Kubi8-3/+973
2017-02-06Merge "Adding ping testcase to demonstrate the isb Generic framework"Kubi3-0/+159
2017-02-06Merge "Adding ping based sample VNF appliance"Kubi4-0/+588
2017-02-06Merge "Adding generic traffic profiles for trex traffic generator"Kubi8-2/+1160
2017-02-06KVMFORNFV: Implementing test suites for kvmfornfv ovs+dpdk scenarios.KalyanReddy2-0/+100
This patch implements test suites for kvmfornfv os-nosdn-kvm_ovs_dpdk-ha and os-nosdn-kvm_ovs_dpdk-noha scenarios. Change-Id: Ia7b17dda262df5d81cac87372b70510192044a40 Co-Authored-By: Navya <b.navya4@tcs.com> Signed-off-by: KalyanReddy <reddyx.gundarapu@intel.com>
2017-02-06Push yardstick debug log into the artifactsrexlee87762-1/+6
the log directory should be specific yardstick so it can be easily pushed into artifacts with the directory. JIRA: YARDSTICK-507 Change-Id: If28b0c3938e123c8a55272cb98291fb76aaf6f9e Signed-off-by: rexlee8776 <limingjiang@huawei.com>
2017-02-06nfvi: disable failing AMQP unittestRoss Brattain2-27/+11
Failures: test_connect (network_services.nfvi.test_collectd.TestAmqpConsumer) ... ERROR:pika.adapters.base_connection:Connection to 1.1.1.1:5672 failed: timeout WARNING:pika.connection:Could not connect, 0 attempts left ERROR:pika.callback:Calling <bound method SelectConnection._on_connection_error of <pika.adapters.select_connection.SelectConnection object at 0x7fe7e2333710>> for "0:_on_connection_error" failed Traceback (most recent call last): File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/.tox/py27/local/lib/python2.7/site-packages/pika/callback.py", line 236, in process callback(*args, **keywords) File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master/.tox/py27/local/lib/python2.7/site-packages/pika/connection.py", line 1265, in _on_connection_error self.params.connection_attempts) AMQPConnectionError: Connection to 1.1.1.1:5672 failed: timeout ok Firstly, 1.1.1.1 is not an approriate fake address, use 127.0.0.1 so we don't try to connect to anything external But 127.0.0.1 won't work anyway, so disable test_connect replace 152.16.0.0 with 172.16.0.0 Remove network_services.nfvi.test_resource.TestResourceProfile since it also fails due to same error Remove test_amqp_collect_nfvi_kpi_exception Change-Id: I00bb1729658e18b4651129661ad9dd9c0dedcf37 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-02-06Fix: network_services: decode stdout instead of encodeRoss Brattain1-1/+1
Fixes unittest on Python 3 stdout is bytes, so we need to decode bytes to unicode using utf-8 bytes.decode(); str.encode() Change-Id: I4b19d237139f338a648d04aa44cd4f199bb901c3 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>