def METHOD_NAME(self, input):
    runner = CliRunner()
    if 'db_table' in input:
        db = Db()
        data_list = list(db.cfgdb.get_table(input['db_table']))
        input['rc_msg'] = input['rc_msg'].format(",".join(data_list))
    if 'show' in input['cmd']:
        exec_cmd = show.cli.commands["ecn"]
        result = runner.invoke(exec_cmd, input['args'])
        exit_code = result.exit_code
        output = result.output
    elif 'q_cmd' in input['cmd'] :
        exit_code, output = get_result_and_return_code(["ecnconfig"] + input['args'])
    else:
        exec_cmd = config.config.commands["ecn"]
        result = runner.invoke(exec_cmd, input['args'])
        exit_code = result.exit_code
        output = result.output
    print(exit_code)
    print(output)
    if input['rc'] == 0:
        assert exit_code == 0
    else:
        assert exit_code != 0
    if 'cmp_args' in input:
        fd = open('/tmp/ecnconfig', 'r')
        cmp_data = json.load(fd)
        if 'cmp_q_args' in input:
            profile, value = self.process_cmp_args(input['cmp_args'][0])
            if 'other_q' in input:
                profile1, value1 = self.process_cmp_args(input['cmp_args'][-1])
            for key in cmp_data:
                queue_idx = ast.literal_eval(key)[-1]
                if queue_idx in input['cmp_q_args']:
                    self.verify_profile(cmp_data[key], profile, value)
                if 'other_q' in input and queue_idx in input['other_q']:
                    self.verify_profile(cmp_data[key], profile1, value1)
        else:
            for args in input['cmp_args']:
                profile, name, value = args.split(',')
                assert(cmp_data[profile][name] == value)
        fd.close()
    if 'rc_msg' in input:
        assert input['rc_msg'] in output
    if 'rc_output' in input:
        assert output == input['rc_output']