diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/helper/Stubs.py | 9 | ||||
-rw-r--r-- | tests/test_interactionManager.py | 58 |
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 |