[asterisk-dev] [Code Review] 3660: testsuite: A rather comprehensive set of tests for DialplanAdd/RemoveExtension AMI commands

Jonathan Rose reviewboard at asterisk.org
Thu Jun 26 11:20:27 CDT 2014



> On June 26, 2014, 10:27 a.m., Matt Jordan wrote:
> > /asterisk/trunk/tests/pbx/manager_extensions/ami_extension_control.py, line 39
> > <https://reviewboard.asterisk.org/r/3660/diff/1/?file=60057#file60057line39>
> >
> >     This should not set the test to pass here. You should only pass the test if the channels that are originated are successfully created (that is, answered).
> >     
> >     You can use a deferred list to gather up the deferreds returned by the AMIProtocol originate. When all deferreds have fired, the deferred list will fire, which will call the callback you've defined for the deferred list. By default, the first parameter passed to a callback of a deferred list is a list of tuples (success, result) where success is a boolean indicating whether or not the callback succeeded. You can then set the test to passed if all of the originates succeeded.
> >     
> >     Something like:
> >     
> >     def _pass_test(results, test_object):
> >         passed = all([result[0] for result in results if result[0])
> >         test_object.set_passed(passed)
> >     
> >     deferds = []
> >     for channel in self.originates:
> >         deferred = self.ami.originate(...)
> >         deferred.addErrback(self.handle_originate_failure)
> >         deferds.append(deferred)
> >     
> >     
> >     deferred_list = defer.DeferredList(deferds)
> >     deferred_list.addCallback(_pass_test, self)
> >

"You should only pass the test if the channels that are originated are successfully created (that is, answered)"

That isn't going to be the case for all originates by design. When attempting to originate to an extension that has been deleted, the call isn't meant to be answered.


- Jonathan


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/3660/#review12339
-----------------------------------------------------------


On June 20, 2014, 1:42 p.m., Jonathan Rose wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/3660/
> -----------------------------------------------------------
> 
> (Updated June 20, 2014, 1:42 p.m.)
> 
> 
> Review request for Asterisk Developers, kmoore and Matt Jordan.
> 
> 
> Repository: testsuite
> 
> 
> Description
> -------
> 
> 11 part test:
>  1 - Remove an extension with a priority
>      If the manager command fails, a failure token will be set
>      If the original extension runs, a user event will be generated that makes the test fail
> 
>  2 - Remove an entire existing extension
>      If the manager command fails, a failure token will be set
>      If the original extension runs, a user event will be generated that makes the test fail
> 
>  3 - Add an extension
>      If the manager command fails, a failure token will be set
>      If the extension fails to run, an expected user event will not be generated and the test will fail
> 
>  4 - Add an extension with a CID match that doesn't match the originated channel
>      If the manager command fails, a failure token will be set
>      If the extension runs, a user event will be generated that makes the test fail
> 
>  5 - Add an extension with a CID match that should match the originated channel
>      If the manager command fails, a failure token will be set
>      If the extension fails to run, an expected user event will not be generated and the test will fail
> 
>  6 - Add an extension that replaces an existing priority
>      If the manager command fails, a failure token will be set
>      If the original extension runs, a user event will be generated that makes the test fail
>      If the replacement extension doesn't run, an expected user event will not be generated and the test will fail
> 
>  7 - Attempt to add an extension that would replace an existing priority, but don't allow replacement
>      If the manager command doesn't fail, a failure token will be set
>      If the original extension doesn't run, an expected user event will not be generated and the test will fail
>      If the replacement extension runs, a user event will be generated that makes the test fail
> 
>  8 - Remove an extension at a specific priority with caller ID matching
>      If the manager command fails, a failure token will be set
>      If the original extension runs, a user event will be generated that makes the test fail
>      The originate is checked by means of a user event on a separate priority taht is not removed
> 
>  9 - Attempt DialplanAddExtension without priority set
>      If the manager command doesn't fail, a failure token will be set
> 
> 10 - Attempt DialplanAddExtension without application set
>      If the manager command doesn't fail, a failure token will be set
> 
> 11 - Attempt DialplanRemoveExtension on an extension that does not exist
>      If the manager command doesn't fail, a failure token will be set
> 
> 
> Diffs
> -----
> 
>   /asterisk/trunk/tests/pbx/tests.yaml 5144 
>   /asterisk/trunk/tests/pbx/manager_extensions/test-config.yaml PRE-CREATION 
>   /asterisk/trunk/tests/pbx/manager_extensions/configs/ast1/extensions.conf PRE-CREATION 
>   /asterisk/trunk/tests/pbx/manager_extensions/ami_extension_control.py PRE-CREATION 
> 
> Diff: https://reviewboard.asterisk.org/r/3660/diff/
> 
> 
> Testing
> -------
> 
> Removed execution of many of the test AMI commands to guarantee that if above failures occurred that the test would fail
> 
> 
> Thanks,
> 
> Jonathan Rose
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20140626/3fa8a9ce/attachment-0001.html>


More information about the asterisk-dev mailing list