Add extra unit test to test #3271

This commit is contained in:
Griatch 2023-09-23 23:25:37 +02:00
parent 0f9d2beb09
commit 1add10bcb0

View file

@ -3,21 +3,20 @@ Unit tests for the scripts package
"""
from unittest import TestCase, mock
from collections import defaultdict
from parameterized import parameterized
from unittest import TestCase, mock
from evennia import DefaultScript
from evennia.objects.objects import DefaultObject
from evennia.scripts.models import ObjectDoesNotExist, ScriptDB
from evennia.scripts.scripts import DoNothing, ExtendedLoopingCall
from evennia.utils.create import create_script
from evennia.utils.test_resources import BaseEvenniaTest
from evennia.scripts.tickerhandler import TickerHandler
from evennia.scripts.monitorhandler import MonitorHandler
from evennia.scripts.manager import ScriptDBManager
from evennia.scripts.models import ObjectDoesNotExist, ScriptDB
from evennia.scripts.monitorhandler import MonitorHandler
from evennia.scripts.scripts import DoNothing, ExtendedLoopingCall
from evennia.scripts.tickerhandler import TickerHandler
from evennia.utils.create import create_script
from evennia.utils.dbserialize import dbserialize
from evennia.utils.test_resources import BaseEvenniaTest
from parameterized import parameterized
class TestScript(BaseEvenniaTest):
@ -29,6 +28,7 @@ class TestScript(BaseEvenniaTest):
self.assertFalse(errors, errors)
mockinit.assert_called()
class TestTickerHandler(TestCase):
"""Test the TickerHandler class"""
@ -44,6 +44,7 @@ class TestTickerHandler(TestCase):
th = TickerHandler()
th.remove(callback=1)
class TestScriptDBManager(TestCase):
"""Test the ScriptDBManger class"""
@ -53,10 +54,12 @@ class TestScriptDBManager(TestCase):
returned_list = manager_obj.get_all_scripts_on_obj(False)
self.assertEqual(returned_list, [])
class TestingListIntervalScript(DefaultScript):
"""
A script that does nothing. Used to test listing of script with nonzero intervals.
"""
def at_script_creation(self):
"""
Setup the script
@ -66,11 +69,13 @@ class TestingListIntervalScript(DefaultScript):
self.interval = 1
self.repeats = 1
class TestScriptHandler(BaseEvenniaTest):
"""
Test the ScriptHandler class.
"""
def setUp(self):
self.obj, self.errors = DefaultObject.create("test_object")
@ -90,6 +95,13 @@ class TestScriptHandler(BaseEvenniaTest):
self.assertTrue("None/1" in self.str)
self.assertTrue("1 repeats" in self.str)
def test_get_script(self):
"Checks that Scripthandler get function returns correct script"
self.obj.scripts.add(TestingListIntervalScript)
script = self.obj.scripts.get("interval_test")
self.assertTrue(bool(script))
class TestScriptDB(TestCase):
"Check the singleton/static ScriptDB object works correctly"
@ -192,10 +204,12 @@ class TestExtendedLoopingCall(TestCase):
callback.assert_called_once()
def dummy_func():
"""Dummy function used as callback parameter"""
return 0
class TestMonitorHandler(TestCase):
"""
Test the MonitorHandler class.
@ -220,9 +234,9 @@ class TestMonitorHandler(TestCase):
def test_remove(self):
"""Tests that removing an object from the monitor handler works correctly"""
obj = mock.Mock()
fieldname = 'db_remove'
fieldname = "db_remove"
callback = dummy_func
idstring = 'test_remove'
idstring = "test_remove"
"""Add an object to the monitor handler and then remove it"""
self.handler.add(obj, fieldname, callback, idstring=idstring)
@ -249,9 +263,13 @@ class TestMonitorHandler(TestCase):
self.handler.add(obj[1], fieldname[1], callback, idstring=idstring[1], persistent=True)
output = self.handler.all()
self.assertEquals(output,
[(obj[0], fieldname[0], idstring[0], False, {}),
(obj[1], fieldname[1], idstring[1], True, {})])
self.assertEquals(
output,
[
(obj[0], fieldname[0], idstring[0], False, {}),
(obj[1], fieldname[1], idstring[1], True, {}),
],
)
def test_clear(self):
"""Tests that the clear function correctly clears the monitor handler"""