CLI Testing Framework Usage

The cli.base module

class CLIClient(username='', password='', tenant_name='', uri='', cli_dir='', insecure=False, prefix='', user_domain_name=None, user_domain_id=None, project_domain_name=None, project_domain_id=None, identity_api_version=None, *args, **kwargs)[source]

Class to use OpenStack official python client CLI’s with auth

Parameters
  • username (string) – The username to authenticate with

  • password (string) – The password to authenticate with

  • tenant_name (string) – The name of the tenant to use with the client calls

  • uri (string) – The auth uri for the OpenStack Deployment

  • cli_dir (string) – The path where the python client binaries are installed. defaults to /usr/bin

  • insecure (boolean) – if True, –insecure is passed to python client binaries.

  • prefix (string) – prefix to insert before commands

  • user_domain_name (string) – User’s domain name

  • user_domain_id (string) – User’s domain ID

  • project_domain_name (string) – Project’s domain name

  • project_domain_id (string) – Project’s domain ID

  • identity_api_version (string) – Version of the Identity API

class ClientTestBase(*args, **kwargs)[source]

Base test class for testing the OpenStack client CLI interfaces.

execute(cmd, action, flags='', params='', fail_ok=False, merge_stderr=False, cli_dir='/usr/bin', prefix='')[source]

Executes specified command for the given action.

Parameters
  • cmd (string) – command to be executed

  • action (string) – string of the cli command to run

  • flags (string) – any optional cli flags to use

  • params (string) – string of any optional positional args to use

  • fail_ok (boolean) – boolean if True an exception is not raised when the cli return code is non-zero

  • merge_stderr (boolean) – boolean if True the stderr buffer is merged into stdout

  • cli_dir (string) – The path where the cmd can be executed

  • prefix (string) – prefix to insert before command

The cli.output_parser module

Collection of utilities for parsing CLI clients output.

details(output_lines, with_label=False)[source]

Return dict with details of first item (table) found in output.

details_multiple(output_lines, with_label=False)[source]

Return list of dicts with item details from cli output tables.

If with_label is True, key ‘__label’ is added to each items dict. For more about ‘label’ see OutputParser.tables().

listing(output_lines)[source]

Return list of dicts with basic item info parsed from cli output.

table(output_lines)[source]

Parse single table from cli output.

Return dict with list of column names in ‘headers’ key and rows in ‘values’ key.

tables(output_lines)[source]

Find all ascii-tables in output and parse them.

Return list of tables parsed from cli output as dicts. (see OutputParser.table())

And, if found, label key (separated line preceding the table) is added to each tables dict.