There are a number of libraries that have been developed to ease common tasks that many tests require. Of particular note is the TestCase class, which acts as a common base class for the Python tests. While you do not have to inherit from this class to have a working test, you are encouraged to use it as it provides a common model and a large amount of functionality for the Python tests.

Library

Purpose

ami

A small wrapper class around starpy's AMI manager

asterisk

A class that manages an instance of Asterisk, including the location of its configuration files and interacting with it over the CLI

buildoptions

Determines the build options for the repository of Asterisk that contains the Test Suite, and whether or not a given test can execute given the build options

cdr

A set of classes that verify CSV CDRs

CDRTestCase

A class that inherits from TestCase, used by tests that verify CDRs

ChannelTestCondition

A pre/post condition module. Verifies that channels are not orphaned after test execution

confbridge

Provides a class that inherits from TestCase and other helper classes for tests that verify ConfBridge

config

Parses and represents an Asterisk configuration file in memory

FdTestCondition

A pre/post condition module. Verifies that file descriptors are not leaked after test execution

LockTestCondition

A pre/post condition module. Verifies that a deadlock has not occurred, or that locks are not held, after test execution

SipDialogTestCondition

A pre/post condition module. Verifies that after test execution, all SIP dialogs are in an expected state

sipp

Wrapper classes around SIPp scenarios

sippversion

Determines the version of SIPp on the system, and how it was compiled

syncami

A module that provides a wrapper to the HTTP version of AMI. starpy (and the ami module) use TCP for communication with Asterisk

TestCase

A base class for tests within the Test Suite. Provides a common framework for starting a test, stopping a test, and interacting with various components within the Test Suite

TestConditions

Manages the pre/post condition checking. This is an option for any test, but will greatly increase test execution times, and is not enabled on most test runs

TestConfig

Sets of classes that determine the configuration of a test from its corresponding test-config.yaml file

TestRunner

A module that executes tests directly from their configuration. Based on that configuration, additional modules can be loaded and plugged into the test object

TestState

A module that provides a controller and state machine for TestEvents from Asterisk. This is used for complex tests that require information from long running applications in Asterisk, such as app_voicemail or app_confbridge

ThreadTestCondition

A pre/post condition module. Verifies that all threads are cleaned up after test execution

utils

Various independent utilities that are too small to warrant their own module

version

Determines the installed version of Asterisk, and performs comparisons between Asterisk versions

voicemail

Provides a class that inherits from TestCase and other helper classes for tests that verify VoiceMail applications