[svn-commits] kmoore: testsuite/asterisk/trunk r4092 - /asterisk/trunk/tests/bridge/dial_LS...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Wed Aug 28 07:09:09 CDT 2013


Author: kmoore
Date: Wed Aug 28 07:09:06 2013
New Revision: 4092

URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=4092
Log:
Fix the dial_LS_options test

This introduces code to the dial_LS_options test to detect when
Asterisk versions later than 11 are used and to expect the appropriate
events and number of events.

Review: https://reviewboard.asterisk.org/r/2780/
(closes issue ASTERISK-22326)

Modified:
    asterisk/trunk/tests/bridge/dial_LS_options/Tester.py

Modified: asterisk/trunk/tests/bridge/dial_LS_options/Tester.py
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/bridge/dial_LS_options/Tester.py?view=diff&rev=4092&r1=4091&r2=4092
==============================================================================
--- asterisk/trunk/tests/bridge/dial_LS_options/Tester.py (original)
+++ asterisk/trunk/tests/bridge/dial_LS_options/Tester.py Wed Aug 28 07:09:06 2013
@@ -13,9 +13,10 @@
 import time
 
 sys.path.append("lib/python")
+from version import AsteriskVersion
 
 LOGGER = logging.getLogger(__name__)
-TOLERANCE = 0.5
+TOLERANCE = 1.0
 
 class Tester(object):
     def __init__(self, module_config, test_object):
@@ -35,11 +36,12 @@
         # Fourth call is a timed call with a single warning played to both
         # parties
         self.calls.append({'timeout': 10.0, 'numwarnings': 2, 'hangup_style': 'BRIDGE_TIMELIMIT'})
-	# Fifth call is a timed call with no warning using the S() option (uses the same mechanism as L with no warning)
+        # Fifth call is a timed call with no warning using the S() option (uses the same mechanism as L with no warning)
         self.calls.append({'timeout': 10.0, 'numwarnings': 0, 'hangup_style': 'HANGUP_TIME'})
         self.current_call = self.calls.pop(0)
         self.num_warnings = 0
         self.num_hangup_triggers = 0
+        self.bridge_enters_received = 0
         return
 
     def ami_connect(self, ami):
@@ -49,11 +51,20 @@
 
         self.ami = ami
         self.ami.registerEvent('Hangup', self.log_hangup_time)
-        self.ami.registerEvent('Bridge', self.log_bridge_time)
         self.ami.registerEvent('TestEvent', self.log_warnings)
+        if AsteriskVersion() >= AsteriskVersion('12'):
+            self.ami.registerEvent('BridgeEnter', self.log_bridge_enter_time)
+        else:
+            self.ami.registerEvent('Bridge', self.log_bridge_time)
 
     def log_bridge_time(self, ami, event):
         if not self.bridge_time:
+            self.bridge_time = time.time()
+            LOGGER.info("Bridge started at time %f" % self.bridge_time)
+
+    def log_bridge_enter_time(self, ami, event):
+        self.bridge_enters_received += 1
+        if not self.bridge_time and self.bridge_enters_received == 2:
             self.bridge_time = time.time()
             LOGGER.info("Bridge started at time %f" % self.bridge_time)
 
@@ -88,12 +99,18 @@
                     (self.current_call['numwarnings'], self.num_warnings))
             self.test_object.set_passed(False)
 
-        if 1 != self.num_hangup_triggers:
-            LOGGER.error("We expected 1 hangup trigger but got %d" %
-                    (self.num_hangup_triggers))
+        triggers = 1
+        if self.current_call['hangup_style'] == 'BRIDGE_TIMELIMIT' \
+            and AsteriskVersion() >= AsteriskVersion('12'):
+            triggers = 2
+
+        if triggers != self.num_hangup_triggers:
+            LOGGER.error("We expected %d hangup trigger(s) but got %d" %
+                    (triggers, self.num_hangup_triggers))
             self.test_object.set_passed(False)
 
         # Reset the variables for the next call
-        self.num_hangup_triggers = self.bridge_time = self.end_time = self.num_warnings = 0
+        self.bridge_enters_received = self.num_hangup_triggers = 0
+        self.bridge_time = self.end_time = self.num_warnings = 0
         if len(self.calls) != 0:
             self.current_call = self.calls.pop(0)




More information about the svn-commits mailing list