[asterisk-commits] kmoore: testsuite/asterisk/trunk r5323 - in /asterisk/trunk/tests/manager: ./...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Jul 31 13:24:01 CDT 2014


Author: kmoore
Date: Thu Jul 31 13:23:54 2014
New Revision: 5323

URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=5323
Log:
Manager: Add state list action tests

This patch adds tests for the DeviceStateList, PresenceStateList, and
ExtensionStateList AMI actions. Each test:

 * Sets two device/presence/device & presence state values
   (respectively for each of the previously listed actions)
 * Runs the appropriate list action
 * Verifies that the action has the expected response
 * Verifies that the intermediate expected events are received
 * Verifies that the list complete event is received

Patch-by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/3874/

Added:
    asterisk/trunk/tests/manager/device_state_list/
    asterisk/trunk/tests/manager/device_state_list/ami_device_state_list.py   (with props)
    asterisk/trunk/tests/manager/device_state_list/test-config.yaml   (with props)
    asterisk/trunk/tests/manager/exten_state_list/
    asterisk/trunk/tests/manager/exten_state_list/ami_exten_state_list.py   (with props)
    asterisk/trunk/tests/manager/exten_state_list/configs/
    asterisk/trunk/tests/manager/exten_state_list/configs/ast1/
    asterisk/trunk/tests/manager/exten_state_list/configs/ast1/extensions.conf   (with props)
    asterisk/trunk/tests/manager/exten_state_list/test-config.yaml   (with props)
    asterisk/trunk/tests/manager/presence_state_list/
    asterisk/trunk/tests/manager/presence_state_list/ami_presence_state_list.py   (with props)
    asterisk/trunk/tests/manager/presence_state_list/test-config.yaml   (with props)
Modified:
    asterisk/trunk/tests/manager/tests.yaml

Added: asterisk/trunk/tests/manager/device_state_list/ami_device_state_list.py
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/manager/device_state_list/ami_device_state_list.py?view=auto&rev=5323
==============================================================================
--- asterisk/trunk/tests/manager/device_state_list/ami_device_state_list.py (added)
+++ asterisk/trunk/tests/manager/device_state_list/ami_device_state_list.py Thu Jul 31 13:23:54 2014
@@ -1,0 +1,139 @@
+#!/usr/bin/env python
+"""
+Copyright (C) 2014, Digium, Inc.
+Mark Michelson <mmichelson at digium.com>
+Matt Jordan <mjordan at digium.com>
+
+This program is free software, distributed under the terms of
+the GNU General Public License Version 2.
+"""
+
+import logging
+from test_case import TestCase
+from twisted.internet import defer
+
+LOGGER = logging.getLogger(__name__)
+
+STATES = [
+    {'device': 'Ham', 'state': 'INVALID'},
+    {'device': 'Eggs', 'state': 'INUSE',},
+]
+
+class AMIDeviceStateList(object):
+    """Pluggable module for listing out device states"""
+
+    def __init__(self, module_config, test_object):
+        """Constructor
+
+        Keyword Arguments:
+        module_config The configuration for this object
+        test_object   Our one and only test object
+        """
+        super(AMIDeviceStateList, self).__init__()
+
+        self.received_events = []
+        self.test_object = test_object
+        self.state_pos = 0
+
+        self.list_complete_token = self.test_object.create_fail_token(
+            'DeviceStateListComplete event received')
+
+        self.test_object.register_ami_observer(self.ami_connect_handler)
+
+    def ami_connect_handler(self, ami):
+        """Handle AMI connection from the test object
+
+        Keyword Arguments:
+        ami The AMIProtocol instance that just connected
+        """
+
+        def _action_failed(result):
+            """Called if the AMI action failed
+
+            Keyword Arguments:
+            result The result of all of the AMI actions or a single action.
+            """
+            LOGGER.error("An action failed with result: %s" % str(result))
+            self.test_object.set_passed(False)
+            self.test_object.stop_reactor()
+
+        def _execute_query(result, ami):
+            """Called when all device state values are set
+
+            Keyword Arguments:
+            result The result of all of the deferreds
+            ami The AMIProtocol object
+            """
+
+            deferred = ami.collectDeferred({'Action': 'DeviceStateList'},
+                                           'DeviceStateListComplete')
+            deferred.addCallbacks(self.device_state_list_success,
+                                  _action_failed)
+
+        # Create a few device state values
+        resp_list = []
+        for state in STATES:
+            device = "DEVICE_STATE(Custom:{0})".format(state['device'])
+            deferred = ami.setVar(None, device, state['state'])
+            resp_list.append(deferred)
+
+        defer_list = defer.DeferredList(resp_list)
+        defer_list.addCallback(_execute_query, ami)
+        defer_list.addErrback(_action_failed)
+
+    def device_state_list_success(self, result):
+        """Handle the completion of the DeviceStateList action
+
+        Keyword Arguments:
+        result The list ack and list elements (does not include the completion event)
+        """
+
+        list_ack = result[0]
+        if list_ack.get('response') != 'Success':
+            LOGGER.error("Failed to get 'success' response for action")
+            self.test_object.set_passed(False)
+        if list_ack.get('eventlist') != 'start':
+            LOGGER.error("Failed to get 'start' notification for action")
+            self.test_object.set_passed(False)
+
+        list_events = result[1:]
+        for list_event in list_events:
+            self.handle_device_state_event(list_event)
+
+        self.test_object.remove_fail_token(self.list_complete_token)
+        self.test_object.stop_reactor()
+
+    def check_parameter(self, event, parameter):
+        """Verify a parameter from a DeviceStateChange event
+
+        Keyword Arguments:
+        event     The DeviceStateChange event
+        parameter The parameter in the event to verify
+        """
+        actual = event.get(parameter)
+        expected = STATES[self.state_pos][parameter]
+        if actual != expected:
+            LOGGER.error("Unexpected {0} received. Expected {1} but got \
+                         {2}".format(parameter, expected, actual))
+            self.test_object.set_passed(False)
+
+    def handle_device_state_event(self, event):
+        if 'actionid' not in event:
+            # Not for us!
+            return
+
+        if event.get('device') not in ['Custom:%s' % state['device']
+                                        for state in STATES]:
+            # Not a device we care about
+            return
+
+        self.check_parameter(event, 'state')
+
+        self.state_pos += 1
+        if self.state_pos == len(STATES):
+            self.test_object.set_passed(True)
+        elif self.state_pos > len(STATES):
+            LOGGER.error("Oh snap, we got %d device state updates but expected %d" %
+                (self.state_pos, len(STATES)))
+            self.test_object.set_passed(False)
+

Propchange: asterisk/trunk/tests/manager/device_state_list/ami_device_state_list.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/manager/device_state_list/ami_device_state_list.py
------------------------------------------------------------------------------
    svn:executable = *

Propchange: asterisk/trunk/tests/manager/device_state_list/ami_device_state_list.py
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/manager/device_state_list/ami_device_state_list.py
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/manager/device_state_list/test-config.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/manager/device_state_list/test-config.yaml?view=auto&rev=5323
==============================================================================
--- asterisk/trunk/tests/manager/device_state_list/test-config.yaml (added)
+++ asterisk/trunk/tests/manager/device_state_list/test-config.yaml Thu Jul 31 13:23:54 2014
@@ -1,0 +1,31 @@
+testinfo:
+    summary: 'Test the DeviceStateList AMI action.'
+    description: |
+        Two device states are set. The DeviceStateList AMI action
+        is used, and the resulting events are checked for the
+        correct values.
+
+properties:
+    minversion: '13.0.0'
+    dependencies:
+        - python: 'twisted'
+        - python: 'starpy'
+        - asterisk: 'res_manager_devicestate'
+    tags:
+        - AMI
+
+test-modules:
+    add-test-to-search-path: 'True'
+    test-object:
+        config-section: test-object-config
+        typename: 'test_case.TestCaseModule'
+    modules:
+        -
+            config-section: presence-state-list
+            typename: 'ami_device_state_list.AMIDeviceStateList'
+
+test-object-config:
+    asterisk-instances: 1
+    connect-ami: True
+
+presence-state-list:

Propchange: asterisk/trunk/tests/manager/device_state_list/test-config.yaml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/manager/device_state_list/test-config.yaml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/manager/device_state_list/test-config.yaml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/manager/exten_state_list/ami_exten_state_list.py
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/manager/exten_state_list/ami_exten_state_list.py?view=auto&rev=5323
==============================================================================
--- asterisk/trunk/tests/manager/exten_state_list/ami_exten_state_list.py (added)
+++ asterisk/trunk/tests/manager/exten_state_list/ami_exten_state_list.py Thu Jul 31 13:23:54 2014
@@ -1,0 +1,153 @@
+#!/usr/bin/env python
+"""
+Copyright (C) 2014, Digium, Inc.
+Mark Michelson <mmichelson at digium.com>
+Matt Jordan <mjordan at digium.com>
+
+This program is free software, distributed under the terms of
+the GNU General Public License Version 2.
+"""
+
+import logging
+from test_case import TestCase
+from twisted.internet import defer
+
+LOGGER = logging.getLogger(__name__)
+
+DEVICE_STATES = [
+    {'device': 'ham', 'state': 'INVALID'},
+    {'device': 'eggs', 'state': 'INUSE',},
+]
+
+PRESENCE_STATES = [
+    {'presence': 'eggs', 'status': 'away', 'subtype': 'green', 'message': 'breakfast'},
+    {'presence': 'ham', 'status': 'available', 'subtype': 'virginia', 'message': 'breakfast'},
+]
+
+EXPECTED_STATES = [
+    {'status': '1', 'exten': 'eggs', 'statustext': 'InUse'},
+    {'status': '4', 'exten': 'ham', 'statustext': 'Unavailable'}
+]
+
+class AMIExtensionStateList(object):
+    """Pluggable module for listing out extension state"""
+
+    def __init__(self, module_config, test_object):
+        """Constructor
+
+        Keyword Arguments:
+        module_config The configuration for this object
+        test_object   Our one and only test object
+        """
+        super(AMIExtensionStateList, self).__init__()
+
+        self.received_events = []
+        self.test_object = test_object
+        self.state_pos = 0
+
+        self.list_complete_token = self.test_object.create_fail_token(
+            'ExtensionStateListComplete event received')
+
+        self.test_object.register_ami_observer(self.ami_connect_handler)
+
+    def ami_connect_handler(self, ami):
+        """Handle AMI connection from the test object
+
+        Keyword Arguments:
+        ami The AMIProtocol instance that just connected
+        """
+
+        def _action_failed(result):
+            """Called if the AMI action failed
+
+            Keyword Arguments:
+            result The result of all of the AMI actions or a single action.
+            """
+            LOGGER.error("An action failed with result: %s" % str(result))
+            self.test_object.set_passed(False)
+            self.test_object.stop_reactor()
+
+        def _execute_query(result, ami):
+            """Called when all presence state values are set
+
+            Keyword Arguments:
+            result The result of all of the deferreds
+            ami The AMIProtocol object
+            """
+
+            deferred = ami.collectDeferred({'Action': 'ExtensionStateList'},
+                                           'ExtensionStateListComplete')
+            deferred.addCallbacks(self.extension_state_list_success,
+                                  _action_failed)
+
+        # Create a few state values
+        resp_list = []
+        for state in DEVICE_STATES:
+            device = "DEVICE_STATE(Custom:{0})".format(state['device'])
+            deferred = ami.setVar(None, device, state['state'])
+            resp_list.append(deferred)
+        for state in PRESENCE_STATES:
+            presence = "PRESENCE_STATE(CustomPresence:{0})".format(state['presence'])
+            value = "{0},{1},{2}".format(state['status'],
+                                         state['subtype'],
+                                         state['message'])
+            deferred = ami.setVar(None, presence, value)
+            resp_list.append(deferred)
+
+        defer_list = defer.DeferredList(resp_list)
+        defer_list.addCallback(_execute_query, ami)
+        defer_list.addErrback(_action_failed)
+
+    def extension_state_list_success(self, result):
+        """Handle the completion of the ExtensionStateList action
+
+        Keyword Arguments:
+        result The list ack and list elements (does not include the completion event)
+        """
+
+        list_ack = result[0]
+        if list_ack.get('response') != 'Success':
+            LOGGER.error("Failed to get 'success' response for action")
+            self.test_object.set_passed(False)
+        if list_ack.get('eventlist') != 'start':
+            LOGGER.error("Failed to get 'start' notification for action")
+            self.test_object.set_passed(False)
+
+        list_events = result[1:]
+        for list_event in list_events:
+            self.handle_exten_status_event(list_event)
+
+        self.test_object.remove_fail_token(self.list_complete_token)
+        self.test_object.stop_reactor()
+
+    def check_parameter(self, event, parameter):
+        """Verify a parameter from a ExtensionStatus event
+
+        Keyword Arguments:
+        event     The ExtensionStatus event
+        parameter The parameter in the event to verify
+        """
+        actual = event.get(parameter)
+        expected = EXPECTED_STATES[self.state_pos][parameter]
+        if actual != expected:
+            LOGGER.error("Unexpected {0} received. Expected {1} but got \
+                         {2}".format(parameter, expected, actual))
+            self.test_object.set_passed(False)
+
+    def handle_exten_status_event(self, event):
+        if 'actionid' not in event:
+            # Not for us!
+            return
+
+        self.check_parameter(event, 'exten')
+        self.check_parameter(event, 'status')
+        self.check_parameter(event, 'statustext')
+
+        self.state_pos += 1
+        if self.state_pos == len(EXPECTED_STATES):
+            self.test_object.set_passed(True)
+        elif self.state_pos > len(EXPECTED_STATES):
+            LOGGER.error("Oh snap, we got %d presence updates but expected %d" %
+                (self.state_pos, len(EXPECTED_STATES)))
+            self.test_object.set_passed(False)
+

Propchange: asterisk/trunk/tests/manager/exten_state_list/ami_exten_state_list.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/manager/exten_state_list/ami_exten_state_list.py
------------------------------------------------------------------------------
    svn:executable = *

Propchange: asterisk/trunk/tests/manager/exten_state_list/ami_exten_state_list.py
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/manager/exten_state_list/ami_exten_state_list.py
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/manager/exten_state_list/configs/ast1/extensions.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/manager/exten_state_list/configs/ast1/extensions.conf?view=auto&rev=5323
==============================================================================
--- asterisk/trunk/tests/manager/exten_state_list/configs/ast1/extensions.conf (added)
+++ asterisk/trunk/tests/manager/exten_state_list/configs/ast1/extensions.conf Thu Jul 31 13:23:54 2014
@@ -1,0 +1,6 @@
+
+[default]
+
+exten => eggs,hint,Custom:eggs&CustomPresence:eggs
+
+exten => ham,hint,Custom:ham&CustomPresence:ham

Propchange: asterisk/trunk/tests/manager/exten_state_list/configs/ast1/extensions.conf
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/manager/exten_state_list/configs/ast1/extensions.conf
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/manager/exten_state_list/configs/ast1/extensions.conf
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/manager/exten_state_list/test-config.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/manager/exten_state_list/test-config.yaml?view=auto&rev=5323
==============================================================================
--- asterisk/trunk/tests/manager/exten_state_list/test-config.yaml (added)
+++ asterisk/trunk/tests/manager/exten_state_list/test-config.yaml Thu Jul 31 13:23:54 2014
@@ -1,0 +1,31 @@
+testinfo:
+    summary: 'Test the ExtensionStateList AMI action.'
+    description: |
+        Two extension states are set from both device
+        state and presence state values. The ExtensionStateList
+        command is executed, and the expected events are
+        evaluated.
+
+properties:
+    minversion: '13.0.0'
+    dependencies:
+        - python: 'twisted'
+        - python: 'starpy'
+    tags:
+        - AMI
+
+test-modules:
+    add-test-to-search-path: 'True'
+    test-object:
+        config-section: test-object-config
+        typename: 'test_case.TestCaseModule'
+    modules:
+        -
+            config-section: presence-state-list
+            typename: 'ami_exten_state_list.AMIExtensionStateList'
+
+test-object-config:
+    asterisk-instances: 1
+    connect-ami: True
+
+presence-state-list:

Propchange: asterisk/trunk/tests/manager/exten_state_list/test-config.yaml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/manager/exten_state_list/test-config.yaml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/manager/exten_state_list/test-config.yaml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/manager/presence_state_list/ami_presence_state_list.py
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/manager/presence_state_list/ami_presence_state_list.py?view=auto&rev=5323
==============================================================================
--- asterisk/trunk/tests/manager/presence_state_list/ami_presence_state_list.py (added)
+++ asterisk/trunk/tests/manager/presence_state_list/ami_presence_state_list.py Thu Jul 31 13:23:54 2014
@@ -1,0 +1,139 @@
+#!/usr/bin/env python
+"""
+Copyright (C) 2014, Digium, Inc.
+Mark Michelson <mmichelson at digium.com>
+Matt Jordan <mjordan at digium.com>
+
+This program is free software, distributed under the terms of
+the GNU General Public License Version 2.
+"""
+
+import logging
+from test_case import TestCase
+from twisted.internet import defer
+
+LOGGER = logging.getLogger(__name__)
+
+STATES = [
+    {'presence': 'Eggs', 'status': 'away', 'subtype': 'green', 'message': 'breakfast'},
+    {'presence': 'Ham', 'status': 'available', 'subtype': 'virginia', 'message': 'breakfast'},
+]
+
+class AMIPresenceStateList(object):
+    """Pluggable module for listing out presence state"""
+
+    def __init__(self, module_config, test_object):
+        """Constructor
+
+        Keyword Arguments:
+        module_config The configuration for this object
+        test_object   Our one and only test object
+        """
+        super(AMIPresenceStateList, self).__init__()
+
+        self.received_events = []
+        self.test_object = test_object
+        self.state_pos = 0
+
+        self.list_complete_token = self.test_object.create_fail_token(
+            'PresenceStateListComplete event received')
+
+        self.test_object.register_ami_observer(self.ami_connect_handler)
+
+    def ami_connect_handler(self, ami):
+        """Handle AMI connection from the test object
+
+        Keyword Arguments:
+        ami The AMIProtocol instance that just connected
+        """
+
+        def _action_failed(result):
+            """Called if the AMI action failed
+
+            Keyword Arguments:
+            result The result of all of the AMI actions or a single action.
+            """
+            LOGGER.error("An action failed with result: %s" % str(result))
+            self.test_object.set_passed(False)
+            self.test_object.stop_reactor()
+
+        def _execute_query(result, ami):
+            """Called when all presence state values are set
+
+            Keyword Arguments:
+            result The result of all of the deferreds
+            ami The AMIProtocol object
+            """
+
+            deferred = ami.collectDeferred({'Action': 'PresenceStateList'},
+                                           'PresenceStateListComplete')
+            deferred.addCallbacks(self.presence_state_list_success,
+                                  _action_failed)
+
+        # Create a few presence state values
+        resp_list = []
+        for state in STATES:
+            presence = "PRESENCE_STATE(CustomPresence:{0})".format(state['presence'])
+            value = "{0},{1},{2}".format(state['status'],
+                                         state['subtype'],
+                                         state['message'])
+            deferred = ami.setVar(None, presence, value)
+            resp_list.append(deferred)
+
+        defer_list = defer.DeferredList(resp_list)
+        defer_list.addCallback(_execute_query, ami)
+        defer_list.addErrback(_action_failed)
+
+    def presence_state_list_success(self, result):
+        """Handle the completion of the PresenceStateList action
+
+        Keyword Arguments:
+        result The list ack and list elements (does not include the completion event)
+        """
+
+        list_ack = result[0]
+        if list_ack.get('response') != 'Success':
+            LOGGER.error("Failed to get 'success' response for action")
+            self.test_object.set_passed(False)
+        if list_ack.get('eventlist') != 'start':
+            LOGGER.error("Failed to get 'start' notification for action")
+            self.test_object.set_passed(False)
+
+        list_events = result[1:]
+        for list_event in list_events:
+            self.handle_presence_event(list_event)
+
+        self.test_object.remove_fail_token(self.list_complete_token)
+        self.test_object.stop_reactor()
+
+    def check_parameter(self, event, parameter):
+        """Verify a parameter from a PresenceStateChange event
+
+        Keyword Arguments:
+        event     The PresenceStateChange event
+        parameter The parameter in the event to verify
+        """
+        actual = event.get(parameter)
+        expected = STATES[self.state_pos][parameter]
+        if actual != expected:
+            LOGGER.error("Unexpected {0} received. Expected {1} but got \
+                         {2}".format(parameter, expected, actual))
+            self.test_object.set_passed(False)
+
+    def handle_presence_event(self, event):
+        if 'actionid' not in event:
+            # Not for us!
+            return
+
+        self.check_parameter(event, 'status')
+        self.check_parameter(event, 'subtype')
+        self.check_parameter(event, 'message')
+
+        self.state_pos += 1
+        if self.state_pos == len(STATES):
+            self.test_object.set_passed(True)
+        elif self.state_pos > len(STATES):
+            LOGGER.error("Oh snap, we got %d presence updates but expected %d" %
+                (self.state_pos, len(STATES)))
+            self.test_object.set_passed(False)
+

Propchange: asterisk/trunk/tests/manager/presence_state_list/ami_presence_state_list.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/manager/presence_state_list/ami_presence_state_list.py
------------------------------------------------------------------------------
    svn:executable = *

Propchange: asterisk/trunk/tests/manager/presence_state_list/ami_presence_state_list.py
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/manager/presence_state_list/ami_presence_state_list.py
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/manager/presence_state_list/test-config.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/manager/presence_state_list/test-config.yaml?view=auto&rev=5323
==============================================================================
--- asterisk/trunk/tests/manager/presence_state_list/test-config.yaml (added)
+++ asterisk/trunk/tests/manager/presence_state_list/test-config.yaml Thu Jul 31 13:23:54 2014
@@ -1,0 +1,31 @@
+testinfo:
+    summary: 'Test the PresenceStateList AMI action.'
+    description: |
+        Two presence states are set. The PresenceStateList AMI action
+        is used, and the resulting events are checked for the
+        correct values.
+
+properties:
+    minversion: '13.0.0'
+    dependencies:
+        - python: 'twisted'
+        - python: 'starpy'
+        - asterisk: 'res_manager_presencestate'
+    tags:
+        - AMI
+
+test-modules:
+    add-test-to-search-path: 'True'
+    test-object:
+        config-section: test-object-config
+        typename: 'test_case.TestCaseModule'
+    modules:
+        -
+            config-section: presence-state-list
+            typename: 'ami_presence_state_list.AMIPresenceStateList'
+
+test-object-config:
+    asterisk-instances: 1
+    connect-ami: True
+
+presence-state-list:

Propchange: asterisk/trunk/tests/manager/presence_state_list/test-config.yaml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/manager/presence_state_list/test-config.yaml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/manager/presence_state_list/test-config.yaml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: asterisk/trunk/tests/manager/tests.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/manager/tests.yaml?view=diff&rev=5323&r1=5322&r2=5323
==============================================================================
--- asterisk/trunk/tests/manager/tests.yaml (original)
+++ asterisk/trunk/tests/manager/tests.yaml Thu Jul 31 13:23:54 2014
@@ -9,7 +9,10 @@
     - dir:  'danger'
     - test: 'originate'
     - test: 'device_state_changed'
+    - test: 'device_state_list'
+    - test: 'exten_state_list'
     - test: 'presence_state_changed'
+    - test: 'presence_state_list'
     - test: 'manager_vars'
     - test: 'status'
     # Temporarily disabled while failures are debugged




More information about the asterisk-commits mailing list