116 lines
3.0 KiB
Python
Executable File
116 lines
3.0 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import unittest
|
|
|
|
from nemubot.hooks.manager import HooksManager
|
|
|
|
class TestHookManager(unittest.TestCase):
|
|
|
|
|
|
def test_access(self):
|
|
hm = HooksManager()
|
|
|
|
h1 = "HOOK1"
|
|
h2 = "HOOK2"
|
|
h3 = "HOOK3"
|
|
|
|
hm.add_hook(h1)
|
|
hm.add_hook(h2, "pre")
|
|
hm.add_hook(h3, "pre", "Text")
|
|
hm.add_hook(h2, "post", "Text")
|
|
|
|
self.assertIn("__end__", hm._access())
|
|
self.assertIn("__end__", hm._access("pre"))
|
|
self.assertIn("__end__", hm._access("pre", "Text"))
|
|
self.assertIn("__end__", hm._access("post", "Text"))
|
|
|
|
self.assertFalse(hm._access("inexistant")["__end__"])
|
|
self.assertTrue(hm._access()["__end__"])
|
|
self.assertTrue(hm._access("pre")["__end__"])
|
|
self.assertTrue(hm._access("pre", "Text")["__end__"])
|
|
self.assertTrue(hm._access("post", "Text")["__end__"])
|
|
|
|
|
|
def test_search(self):
|
|
hm = HooksManager()
|
|
|
|
h1 = "HOOK1"
|
|
h2 = "HOOK2"
|
|
h3 = "HOOK3"
|
|
h4 = "HOOK4"
|
|
|
|
hm.add_hook(h1)
|
|
hm.add_hook(h2, "pre")
|
|
hm.add_hook(h3, "pre", "Text")
|
|
hm.add_hook(h2, "post", "Text")
|
|
|
|
self.assertTrue([h for h in hm._search(h1)])
|
|
self.assertFalse([h for h in hm._search(h4)])
|
|
self.assertEqual(2, len([h for h in hm._search(h2)]))
|
|
self.assertEqual([("pre", "Text")], [h for h in hm._search(h3)])
|
|
|
|
|
|
def test_delete(self):
|
|
hm = HooksManager()
|
|
|
|
h1 = "HOOK1"
|
|
h2 = "HOOK2"
|
|
h3 = "HOOK3"
|
|
h4 = "HOOK4"
|
|
|
|
hm.add_hook(h1)
|
|
hm.add_hook(h2, "pre")
|
|
hm.add_hook(h3, "pre", "Text")
|
|
hm.add_hook(h2, "post", "Text")
|
|
|
|
hm.del_hooks(hook=h4)
|
|
|
|
self.assertTrue(hm._access("pre")["__end__"])
|
|
self.assertTrue(hm._access("pre", "Text")["__end__"])
|
|
hm.del_hooks("pre")
|
|
self.assertFalse(hm._access("pre")["__end__"])
|
|
|
|
self.assertTrue(hm._access("post", "Text")["__end__"])
|
|
hm.del_hooks("post", "Text", hook=h2)
|
|
self.assertFalse(hm._access("post", "Text")["__end__"])
|
|
|
|
self.assertTrue(hm._access()["__end__"])
|
|
hm.del_hooks(hook=h1)
|
|
self.assertFalse(hm._access()["__end__"])
|
|
|
|
|
|
def test_get(self):
|
|
hm = HooksManager()
|
|
|
|
h1 = "HOOK1"
|
|
h2 = "HOOK2"
|
|
h3 = "HOOK3"
|
|
|
|
hm.add_hook(h1)
|
|
hm.add_hook(h2, "pre")
|
|
hm.add_hook(h3, "pre", "Text")
|
|
hm.add_hook(h2, "post", "Text")
|
|
|
|
self.assertEqual([h1, h2], [h for h in hm.get_hooks("pre")])
|
|
self.assertEqual([h1, h2, h3], [h for h in hm.get_hooks("pre", "Text")])
|
|
|
|
|
|
def test_get_rev(self):
|
|
hm = HooksManager()
|
|
|
|
h1 = "HOOK1"
|
|
h2 = "HOOK2"
|
|
h3 = "HOOK3"
|
|
|
|
hm.add_hook(h1)
|
|
hm.add_hook(h2, "pre")
|
|
hm.add_hook(h3, "pre", "Text")
|
|
hm.add_hook(h2, "post", "Text")
|
|
|
|
self.assertEqual([h2, h3], [h for h in hm.get_reverse_hooks("pre")])
|
|
self.assertEqual([h3], [h for h in hm.get_reverse_hooks("pre", exclude_first=True)])
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|