summaryrefslogtreecommitdiffstats
path: root/tests/api
diff options
context:
space:
mode:
Diffstat (limited to 'tests/api')
-rw-r--r--tests/api/ApiProxy.py4
-rw-r--r--tests/api/ApiTester.py6
-rw-r--r--tests/api/test_JSONBackend.py15
-rw-r--r--tests/api/test_WebSocketBackend.py10
-rw-r--r--tests/api/test_api.py17
5 files changed, 34 insertions, 18 deletions
diff --git a/tests/api/ApiProxy.py b/tests/api/ApiProxy.py
index 4bea0f5a3..0da79a204 100644
--- a/tests/api/ApiProxy.py
+++ b/tests/api/ApiProxy.py
@@ -3,10 +3,12 @@
from pyload.remote.apitypes_debug import classes, methods
+from tests.helper.config import credentials
+
class ApiProxy:
""" Proxy that does type checking on the api """
- def __init__(self, api, user="User", pw="test"):
+ def __init__(self, api, user=credentials[0], pw=credentials[1]):
self.api = api
self.user = user
self.pw = pw
diff --git a/tests/api/ApiTester.py b/tests/api/ApiTester.py
index 39973b52f..e9a185947 100644
--- a/tests/api/ApiTester.py
+++ b/tests/api/ApiTester.py
@@ -3,6 +3,8 @@
from pyload.remote.JSONClient import JSONClient
from pyload.remote.WSClient import WSClient
+from tests.helper.config import webAddress, wsAddress
+
from ApiProxy import ApiProxy
class ApiTester:
@@ -29,7 +31,7 @@ class ApiTester:
self.api = api
def enableJSON(self):
- self.api = ApiProxy(JSONClient())
+ self.api = ApiProxy(JSONClient(webAddress))
def enableWS(self):
- self.api = ApiProxy(WSClient())
+ self.api = ApiProxy(WSClient(wsAddress))
diff --git a/tests/api/test_JSONBackend.py b/tests/api/test_JSONBackend.py
index 4efc65d2a..d13d6709f 100644
--- a/tests/api/test_JSONBackend.py
+++ b/tests/api/test_JSONBackend.py
@@ -10,15 +10,15 @@ import json
from pyload.remote.apitypes import Forbidden
from pyload.remote.JSONClient import JSONClient
+from tests.helper.config import credentials, webAddress
class TestJSONBackend:
- login = ("User", "pwhere")
def setUp(self):
- self.client = JSONClient()
+ self.client = JSONClient(webAddress)
def test_login(self):
- self.client.login(*self.login)
+ self.client.login(*credentials)
self.client.getServerVersion()
self.client.logout()
@@ -26,10 +26,9 @@ class TestJSONBackend:
ret = self.client.login("WrongUser", "wrongpw")
assert ret is False
-
def test_httpauth(self):
# cheap http auth
- ret = requests.get(self.client.URL + "/getServerVersion", auth=HTTPBasicAuth(*self.login))
+ ret = requests.get(webAddress + "/getServerVersion", auth=HTTPBasicAuth(*credentials))
assert_equal(ret.status_code, 200)
assert ret.text
@@ -37,8 +36,8 @@ class TestJSONBackend:
payload = {'section': 'webinterface', 'option': 'port'}
headers = {'content-type': 'application/json'}
- ret = requests.get(self.client.URL + "/getConfigValue", headers=headers,
- auth=HTTPBasicAuth(*self.login), data=json.dumps(payload))
+ ret = requests.get(webAddress + "/getConfigValue", headers=headers,
+ auth=HTTPBasicAuth(*credentials), data=json.dumps(payload))
assert_equal(ret.status_code, 200)
assert ret.text
@@ -49,5 +48,5 @@ class TestJSONBackend:
@raises(AttributeError)
def test_unknown_method(self):
- self.client.login(*self.login)
+ self.client.login(*credentials)
self.client.sdfdsg() \ No newline at end of file
diff --git a/tests/api/test_WebSocketBackend.py b/tests/api/test_WebSocketBackend.py
index 679654fc9..a9288104f 100644
--- a/tests/api/test_WebSocketBackend.py
+++ b/tests/api/test_WebSocketBackend.py
@@ -5,23 +5,25 @@ from nose.tools import raises
from pyload.remote.apitypes import Forbidden
from pyload.remote.WSClient import WSClient
+from tests.helper.config import credentials, wsAddress
+
class TestWebSocketBackend:
def setUp(self):
- self.client = WSClient()
+ self.client = WSClient(wsAddress)
self.client.connect()
def tearDown(self):
self.client.close()
def test_login(self):
- self.client.login("User", "test")
+ self.client.login(*credentials)
self.client.getServerVersion()
self.client.logout()
def test_wronglogin(self):
ret = self.client.login("WrongUser", "wrongpw")
- assert ret == False
+ assert ret is False
@raises(Forbidden)
def test_access(self):
@@ -29,5 +31,5 @@ class TestWebSocketBackend:
@raises(AttributeError)
def test_unknown_method(self):
- self.client.login("User", "test")
+ self.client.login(*credentials)
self.client.sdfdsg()
diff --git a/tests/api/test_api.py b/tests/api/test_api.py
index 68448b891..668470fe4 100644
--- a/tests/api/test_api.py
+++ b/tests/api/test_api.py
@@ -1,17 +1,19 @@
-
from unittest import TestCase
from random import choice
-from pyLoadCore import Core
+from pyload.Core import Core
from ApiTester import ApiTester
+
class TestAPI(TestCase):
"""
Test all available testers randomly and on all backends
"""
+ _multiprocess_can_split_ = True
core = None
+ #TODO: parallel testing
@classmethod
def setUpClass(cls):
from test_noargs import TestNoArgs
@@ -33,7 +35,16 @@ class TestAPI(TestCase):
cls.core.shutdown()
def test_random(self, n=10000):
-
for i in range(n):
func = choice(self.methods)
func()
+
+ def test_random2(self, n):
+ self.test_random(n)
+
+ def test_random3(self, n):
+ self.test_random(n)
+
+ def test_random4(self, n):
+ self.test_random(n)
+