X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=test%2Ftest_nfvbench.py;h=ff4625b961c6cad5639dcc345906b04ded149fb8;hb=be1e12371b0982348774e59f2dcdf876ca5ec22e;hp=a220703764faac3db33f76b41b6e1113c20c35d1;hpb=5d2becfd9d6398ce9dfd4c83618de42e272ec830;p=nfvbench.git diff --git a/test/test_nfvbench.py b/test/test_nfvbench.py index a220703..ff4625b 100644 --- a/test/test_nfvbench.py +++ b/test/test_nfvbench.py @@ -15,9 +15,12 @@ # from attrdict import AttrDict -from nfvbench.config import get_err_config +import logging +from nfvbench.config import config_loads from nfvbench.connection import SSH from nfvbench.credentials import Credentials +from nfvbench.fluentd import FluentLogHandler +import nfvbench.log from nfvbench.network import Interface from nfvbench.network import Network from nfvbench.specs import Encaps @@ -632,6 +635,9 @@ def test_ndr_pdr_search(traffic_client): # Other tests # ========================================================================= +def setup_module(module): + nfvbench.log.setup(mute_stdout=True) + def test_no_credentials(): cred = Credentials('/completely/wrong/path/openrc', None, False) if cred.rc_auth_url: @@ -642,13 +648,47 @@ def test_no_credentials(): def test_config(): refcfg = {1: 100, 2: {21: 100, 22: 200}, 3: None} - assert(get_err_config({}, refcfg) is None) - assert(get_err_config({1: 10}, refcfg) is None) - assert(get_err_config({2: {21: 1000}}, refcfg) is None) - assert(get_err_config({3: "abc"}, refcfg) is None) + res1 = {1: 10, 2: {21: 100, 22: 200}, 3: None} + res2 = {1: 100, 2: {21: 1000, 22: 200}, 3: None} + res3 = {1: 100, 2: {21: 100, 22: 200}, 3: "abc"} + assert(config_loads("{}", refcfg) == refcfg) + assert(config_loads("{1: 10}", refcfg) == res1) + assert(config_loads("{2: {21: 1000}}", refcfg) == res2) + assert(config_loads('{3: "abc"}', refcfg) == res3) + # correctly fails - assert(get_err_config({4: 0}, refcfg) == {4: 0}) - assert(get_err_config({2: {0: 1, 1: 2}}, refcfg) == {2: {0: 1}}) - # invalid value type - assert(get_err_config({1: 'abc', 2: {21: 0}}, refcfg) == {1: 'abc'}) - assert(get_err_config({2: 100, 5: 10}, refcfg) == {2: 100}) + # pairs of input string and expected subset (None if identical) + fail_pairs = [ + ["{4: 0}", None], + ["{2: {21: 100, 30: 50}}", "{2: {30: 50}}"], + ["{2: {0: 1, 1: 2}, 5: 5}", None], + ["{1: 'abc', 2: {21: 0}}", "{1: 'abc'}"], + ["{2: 100}", None] + ] + for fail_pair in fail_pairs: + with pytest.raises(Exception) as e_info: + config_loads(fail_pair[0], refcfg) + expected = fail_pair[1] + if expected is None: + expected = fail_pair[0] + assert expected in e_info.value.message + + # whitelist keys + flavor = {'flavor': {'vcpus': 2, 'ram': 8192, 'disk': 0, + 'extra_specs': {'hw:cpu_policy': 'dedicated'}}} + new_flavor = {'flavor': {'vcpus': 2, 'ram': 8192, 'disk': 0, + 'extra_specs': {'hw:cpu_policy': 'dedicated', 'hw:numa_nodes': 2}}} + assert(config_loads("{'flavor': {'extra_specs': {'hw:numa_nodes': 2}}}", flavor, + whitelist_keys=['alpha', 'extra_specs']) == new_flavor) + +def test_fluentd(): + logger = logging.getLogger('fluent-logger') + handler = FluentLogHandler('nfvbench', fluentd_port=7081) + logger.addHandler(handler) + logger.setLevel(logging.INFO) + logger.info('test') + logger.warning('test %d', 100) + try: + raise Exception("test") + except Exception: + logger.exception("got exception")