summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/helper/Stubs.py9
-rw-r--r--tests/test_interactionManager.py58
2 files changed, 65 insertions, 2 deletions
diff --git a/tests/helper/Stubs.py b/tests/helper/Stubs.py
index be2f5052b..963efd290 100644
--- a/tests/helper/Stubs.py
+++ b/tests/helper/Stubs.py
@@ -67,7 +67,8 @@ class Core:
self.requestFactory = RequestFactory(self)
__builtin__.pyreq = self.requestFactory
self.accountManager = AccountManager()
- self.addonManager = self.eventManager = self.interActionManager = NoopClass()
+ self.addonManager = AddonManager()
+ self.eventManager = self.interActionManager = NoopClass()
self.js = JsEngine()
self.cache = {}
self.packageCache = {}
@@ -100,6 +101,10 @@ class NoopClass:
def __getattr__(self, item):
return noop
+class AddonManager(NoopClass):
+ def activePlugins(self):
+ return []
+
class AccountManager:
def getAccountForPlugin(self, name):
@@ -121,5 +126,5 @@ class Thread(BaseThread):
__builtin__._ = lambda x: x
__builtin__.pypath = abspath(join(dirname(__file__), "..", ".."))
-__builtin__.addonManager = NoopClass()
+__builtin__.addonManager = AddonManager()
__builtin__.pyreq = None
diff --git a/tests/test_interactionManager.py b/tests/test_interactionManager.py
new file mode 100644
index 000000000..920d84b9d
--- /dev/null
+++ b/tests/test_interactionManager.py
@@ -0,0 +1,58 @@
+# -*- coding: utf-8 -*-
+
+from unittest import TestCase
+from helper.Stubs import Core
+
+from module.Api import Input, Output
+from module.interaction.InteractionManager import InteractionManager
+
+class TestInteractionManager(TestCase):
+
+ @classmethod
+ def setUpClass(cls):
+ cls.core = Core()
+
+ def setUp(self):
+ self.im = InteractionManager(self.core)
+
+
+ def test_notifications(self):
+
+ n = self.im.createNotification("test", "notify")
+ assert self.im.getNotifications() == [n]
+
+ for i in range(10):
+ self.im.createNotification("title", "test")
+
+ assert len(self.im.getNotifications()) == 11
+
+
+ def test_captcha(self):
+ assert self.im.getTask() is None
+
+ t = self.im.newCaptchaTask("1", "", "")
+ assert t.output == Output.Captcha
+ self.im.handleTask(t)
+ assert t is self.im.getTask()
+
+ t2 = self.im.newCaptchaTask("2", "", "")
+ self.im.handleTask(t2)
+
+ assert self.im.getTask(Output.Query) is None
+ assert self.im.getTask() is t
+
+ self.im.removeTask(t)
+ assert self.im.getTask() is t2
+
+ self.im.getTaskByID(t2.iid)
+ assert self.im.getTask() is None
+
+
+ def test_query(self):
+ assert self.im.getTask() is None
+ t = self.im.newQueryTask(Input.Text, None, "text")
+ assert t.description == "text"
+ self.im.handleTask(t)
+
+ assert self.im.getTask(Output.Query) is t
+ assert self.im.getTask(Output.Captcha) is None \ No newline at end of file