<html>
<head>
    <base href="https://wiki.asterisk.org/wiki">
            <link rel="stylesheet" href="/wiki/s/en/2172/18/9/_/styles/combined.css?spaceKey=AST&amp;forWysiwyg=true" type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://wiki.asterisk.org/wiki/display/AST/Python+Modules">Python Modules</a></h2>
    <h4>Page  <b>added</b> by             <a href="https://wiki.asterisk.org/wiki/display/~mjordan">Matt Jordan</a>
    </h4>
         <br/>
    <div class="notificationGreySide">
         <p>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.</p>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Library </th>
<th class='confluenceTh'> Purpose </th>
</tr>
<tr>
<td class='confluenceTd'> ami </td>
<td class='confluenceTd'> A small wrapper class around starpy's AMI manager </td>
</tr>
<tr>
<td class='confluenceTd'> asterisk </td>
<td class='confluenceTd'> A class that manages an instance of Asterisk, including the location of its configuration files and interacting with it over the CLI </td>
</tr>
<tr>
<td class='confluenceTd'> buildoptions </td>
<td class='confluenceTd'> 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 </td>
</tr>
<tr>
<td class='confluenceTd'> cdr </td>
<td class='confluenceTd'> A set of classes that verify CSV CDRs </td>
</tr>
<tr>
<td class='confluenceTd'> CDRTestCase </td>
<td class='confluenceTd'> A class that inherits from TestCase, used by tests that verify CDRs </td>
</tr>
<tr>
<td class='confluenceTd'> ChannelTestCondition </td>
<td class='confluenceTd'> A pre/post condition module.  Verifies that channels are not orphaned after test execution </td>
</tr>
<tr>
<td class='confluenceTd'> confbridge </td>
<td class='confluenceTd'> Provides a class that inherits from TestCase and other helper classes for tests that verify ConfBridge </td>
</tr>
<tr>
<td class='confluenceTd'> config </td>
<td class='confluenceTd'> Parses and represents an Asterisk configuration file in memory </td>
</tr>
<tr>
<td class='confluenceTd'> FdTestCondition </td>
<td class='confluenceTd'> A pre/post condition module.  Verifies that file descriptors are not leaked after test execution </td>
</tr>
<tr>
<td class='confluenceTd'> LockTestCondition </td>
<td class='confluenceTd'> A pre/post condition module.  Verifies that a deadlock has not occurred, or that locks are not held, after test execution </td>
</tr>
<tr>
<td class='confluenceTd'> SipDialogTestCondition </td>
<td class='confluenceTd'> A pre/post condition module.  Verifies that after test execution, all SIP dialogs are in an expected state </td>
</tr>
<tr>
<td class='confluenceTd'> sipp </td>
<td class='confluenceTd'> Wrapper classes around SIPp scenarios </td>
</tr>
<tr>
<td class='confluenceTd'> sippversion </td>
<td class='confluenceTd'> Determines the version of SIPp on the system, and how it was compiled </td>
</tr>
<tr>
<td class='confluenceTd'> syncami </td>
<td class='confluenceTd'> A module that provides a wrapper to the HTTP version of AMI.  starpy (and the ami module) use TCP for communication with Asterisk </td>
</tr>
<tr>
<td class='confluenceTd'> TestCase </td>
<td class='confluenceTd'> 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 </td>
</tr>
<tr>
<td class='confluenceTd'> TestConditions </td>
<td class='confluenceTd'> 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 </td>
</tr>
<tr>
<td class='confluenceTd'> TestConfig </td>
<td class='confluenceTd'> Sets of classes that determine the configuration of a test from its corresponding test-config.yaml file </td>
</tr>
<tr>
<td class='confluenceTd'> TestState </td>
<td class='confluenceTd'> 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 </td>
</tr>
<tr>
<td class='confluenceTd'> ThreadTestCondition </td>
<td class='confluenceTd'> A pre/post condition module.  Verifies that all threads are cleaned up after test execution </td>
</tr>
<tr>
<td class='confluenceTd'> utils </td>
<td class='confluenceTd'> Various independent utilities that are too small to warrant their own module </td>
</tr>
<tr>
<td class='confluenceTd'> version </td>
<td class='confluenceTd'> Determines the installed version of Asterisk, and performs comparisons between Asterisk versions </td>
</tr>
<tr>
<td class='confluenceTd'> voicemail </td>
<td class='confluenceTd'> Provides a class that inherits from TestCase and other helper classes for tests that verify VoiceMail applications </td>
</tr>
</tbody></table>
</div>

    </div>
    <div id="commentsSection" class="wiki-content pageSection">
       <div style="float: right;" class="grey">
                        <a href="https://wiki.asterisk.org/wiki/users/removespacenotification.action?spaceKey=AST">Stop watching space</a>
            <span style="padding: 0px 5px;">|</span>
                <a href="https://wiki.asterisk.org/wiki/users/editmyemailsettings.action">Change email notification preferences</a>
</div>
       <a href="https://wiki.asterisk.org/wiki/display/AST/Python+Modules">View Online</a>
              |
       <a href="https://wiki.asterisk.org/wiki/display/AST/Python+Modules?showComments=true&amp;showCommentArea=true#addcomment">Add Comment</a>
           </div>
</div>
</div>
</div>
</div>
</body>
</html>