[asterisk-commits] dlee: testsuite/asterisk/trunk r3879 - in /asterisk/trunk: lib/python/asteris...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Jul 3 11:36:34 CDT 2013
Author: dlee
Date: Wed Jul 3 11:36:32 2013
New Revision: 3879
URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=3879
Log:
Tests for ARI authentication.
Updated existing continue test to account for related changes.
Added:
asterisk/trunk/tests/rest_api/authentication/
- copied from r3878, asterisk/team/dlee/ari-authn/tests/rest_api/authentication/
Modified:
asterisk/trunk/lib/python/asterisk/ari.py
asterisk/trunk/tests/rest_api/continue/configs/ast1/stasis_http.conf
asterisk/trunk/tests/rest_api/tests.yaml
Modified: asterisk/trunk/lib/python/asterisk/ari.py
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/lib/python/asterisk/ari.py?view=diff&rev=3879&r1=3878&r2=3879
==============================================================================
--- asterisk/trunk/lib/python/asterisk/ari.py (original)
+++ asterisk/trunk/lib/python/asterisk/ari.py Wed Jul 3 11:36:32 2013
@@ -38,18 +38,22 @@
self.host = '127.0.0.1'
self.port = DEFAULT_PORT
self.test_object = test_object
+ username = module_config.get('username') or 'testsuite'
+ password = module_config.get('password') or 'testsuite'
+ userpass = (username, password)
#: ARI interface object
- self.ari = ARI(self.host, self.port)
+ self.ari = ARI(self.host, port=self.port, userpass=userpass)
#: Matchers for incoming events
self.event_matchers = [
EventMatcher(self.ari, e, test_object)
for e in module_config['events']]
- apps = module_config['apps']
+ apps = module_config.get('apps') or 'testsuite'
if isinstance(apps, list):
apps = ','.join(apps)
#: Twisted protocol factory for ARI WebSockets
self.factory = AriClientFactory(host=self.host, port=self.port,
- apps=apps, on_event=self.on_event)
+ apps=apps, on_event=self.on_event,
+ userpass=userpass)
def on_event(self, event):
'''Handle incoming events from the WebSocket.
@@ -63,7 +67,7 @@
class AriClientFactory(WebSocketClientFactory):
'''Twisted protocol factory for building ARI WebSocket clients.
'''
- def __init__(self, host, apps, on_event, port=DEFAULT_PORT,
+ def __init__(self, host, apps, on_event, userpass, port=DEFAULT_PORT,
timeout_secs=60):
'''Constructor
@@ -74,7 +78,8 @@
:param timeout_secs: Maximum time to try to connect to Asterisk.
'''
url = "ws://%s:%d/ws?%s" % \
- (host, port, urllib.urlencode({'app': apps}))
+ (host, port,
+ urllib.urlencode({'app': apps, 'api_key': '%s:%s' % userpass}))
WebSocketClientFactory.__init__(self, url, protocols=["stasis"])
self.on_event = on_event
self.timeout_secs = timeout_secs
@@ -148,14 +153,14 @@
'''Bare bones object for an ARI interface.
'''
- def __init__(self, host, port=DEFAULT_PORT):
+ def __init__(self, host, userpass, port=DEFAULT_PORT):
'''Constructor.
:param host: Hostname of Asterisk.
:param port: Port of the Asterisk webserver.
'''
self.base_url = "http://%s:%d/stasis" % (host, port)
-
+ self.userpass = userpass
def build_url(self, *args):
'''Build a URL from the given path.
@@ -177,9 +182,9 @@
:returns: requests.models.Response
:throws: requests.exceptions.HTTPError
'''
- url = self.build_url(*args, **kwargs)
+ url = self.build_url(*args)
logger.info("GET %s %r" % (url, kwargs))
- return raise_on_err(requests.get(url, params=kwargs))
+ return raise_on_err(requests.get(url, params=kwargs, auth=self.userpass))
def post(self, *args, **kwargs):
'''Send a POST request to ARI.
@@ -191,7 +196,7 @@
'''
url = self.build_url(*args, **kwargs)
logger.info("POST %s %r" % (url, kwargs))
- return raise_on_err(requests.post(url, params=kwargs))
+ return raise_on_err(requests.post(url, params=kwargs, auth=self.userpass))
def delete(self, *args, **kwargs):
'''Send a DELETE request to ARI.
@@ -203,7 +208,7 @@
'''
url = self.build_url(*args, **kwargs)
logger.info("DELETE %s %r" % (url, kwargs))
- return raise_on_err(requests.delete(url, params=kwargs))
+ return raise_on_err(requests.delete(url, params=kwargs, auth=self.userpass))
def raise_on_err(resp):
Modified: asterisk/trunk/tests/rest_api/continue/configs/ast1/stasis_http.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rest_api/continue/configs/ast1/stasis_http.conf?view=diff&rev=3879&r1=3878&r2=3879
==============================================================================
--- asterisk/trunk/tests/rest_api/continue/configs/ast1/stasis_http.conf (original)
+++ asterisk/trunk/tests/rest_api/continue/configs/ast1/stasis_http.conf Wed Jul 3 11:36:32 2013
@@ -1,2 +1,5 @@
[general]
enabled = yes
+
+[user-testsuite]
+password = testsuite
Modified: asterisk/trunk/tests/rest_api/tests.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rest_api/tests.yaml?view=diff&rev=3879&r1=3878&r2=3879
==============================================================================
--- asterisk/trunk/tests/rest_api/tests.yaml (original)
+++ asterisk/trunk/tests/rest_api/tests.yaml Wed Jul 3 11:36:32 2013
@@ -1,3 +1,4 @@
# Enter tests here in the order they should be considered for execution:
tests:
- test: 'continue'
+ - test: 'authentication'
More information about the asterisk-commits
mailing list