mirror of
https://github.com/evennia/evennia.git
synced 2026-03-27 02:06:32 +01:00
Further server.py unittests
This commit is contained in:
parent
e541226c81
commit
f2fd5563c7
1 changed files with 96 additions and 3 deletions
|
|
@ -5,6 +5,7 @@ Test the main server component
|
|||
|
||||
from unittest import TestCase
|
||||
from mock import MagicMock, patch, DEFAULT, call
|
||||
from django.test import override_settings
|
||||
from evennia.utils.test_resources import unload_module
|
||||
|
||||
|
||||
|
|
@ -19,6 +20,22 @@ class TestServer(TestCase):
|
|||
from evennia.server import server
|
||||
self.server = server
|
||||
|
||||
def test__server_maintenance_reset(self):
|
||||
with patch.multiple("evennia.server.server",
|
||||
LoopingCall=DEFAULT,
|
||||
Evennia=DEFAULT,
|
||||
_FLUSH_CACHE=DEFAULT,
|
||||
connection=DEFAULT,
|
||||
_IDMAPPER_CACHE_MAXSIZE=1000,
|
||||
_MAINTENANCE_COUNT=0,
|
||||
ServerConfig=DEFAULT) as mocks:
|
||||
mocks['connection'].close = MagicMock()
|
||||
mocks['ServerConfig'].objects.conf = MagicMock(return_value=100)
|
||||
|
||||
# flush cache
|
||||
self.server._server_maintenance()
|
||||
mock['ServerConfig'].objects.conf.assert_called_with('runtime', default=0.0)
|
||||
|
||||
def test__server_maintenance_flush(self):
|
||||
with patch.multiple("evennia.server.server",
|
||||
LoopingCall=DEFAULT,
|
||||
|
|
@ -126,9 +143,39 @@ class TestServer(TestCase):
|
|||
evennia = self.server.Evennia(MagicMock())
|
||||
self.assertEqual(evennia.start_time, 1000)
|
||||
|
||||
def test_update_defaults(self):
|
||||
evennia = self.server.Evennia(MagicMock())
|
||||
evennia.update_defaults()
|
||||
@patch("evennia.objects.models.ObjectDB")
|
||||
@patch("evennia.server.server.AccountDB")
|
||||
@patch("evennia.server.server.ScriptDB")
|
||||
@patch("evennia.comms.models.ChannelDB")
|
||||
def test_update_defaults(self, mockchan, mockscript, mockacct, mockobj):
|
||||
with patch.multiple("evennia.server.server",
|
||||
ServerConfig=DEFAULT) as mocks:
|
||||
|
||||
mockchan.objects.filter = MagicMock()
|
||||
mockscript.objects.filter = MagicMock()
|
||||
mockacct.objects.filter = MagicMock()
|
||||
mockobj.objects.filter = MagicMock()
|
||||
|
||||
# fake mismatches
|
||||
settings_names = ("CMDSET_CHARACTER", "CMDSET_ACCOUNT",
|
||||
"BASE_ACCOUNT_TYPECLASS", "BASE_OBJECT_TYPECLASS",
|
||||
"BASE_CHARACTER_TYPECLASS", "BASE_ROOM_TYPECLASS",
|
||||
"BASE_EXIT_TYPECLASS", "BASE_SCRIPT_TYPECLASS",
|
||||
"BASE_CHANNEL_TYPECLASS")
|
||||
fakes = {name: "Dummy.path" for name in settings_names}
|
||||
|
||||
def _mock_conf(key, *args):
|
||||
return fakes[key]
|
||||
|
||||
mocks['ServerConfig'].objects.conf = _mock_conf
|
||||
|
||||
evennia = self.server.Evennia(MagicMock())
|
||||
evennia.update_defaults()
|
||||
|
||||
mockchan.objects.filter.assert_called()
|
||||
mockscript.objects.filter.assert_called()
|
||||
mockacct.objects.filter.assert_called()
|
||||
mockobj.objects.filter.assert_called()
|
||||
|
||||
def test_initial_setup(self):
|
||||
from evennia.utils.create import create_account
|
||||
|
|
@ -142,3 +189,49 @@ class TestServer(TestCase):
|
|||
mocks['AccountDB'].objects.get = MagicMock(return_value=acct)
|
||||
evennia = self.server.Evennia(MagicMock())
|
||||
evennia.run_initial_setup()
|
||||
|
||||
def test_initial_setup_retry(self):
|
||||
from evennia.utils.create import create_account
|
||||
|
||||
acct = create_account("TestSuperuser", "test@test.com", "testpassword",
|
||||
is_superuser=True)
|
||||
|
||||
with patch.multiple("evennia.server.initial_setup",
|
||||
ServerConfig=DEFAULT,
|
||||
reset_server=DEFAULT,
|
||||
AccountDB=DEFAULT) as mocks:
|
||||
mocks['AccountDB'].objects.get = MagicMock(return_value=acct)
|
||||
# a last_initial_setup_step > 0
|
||||
mocks['ServerConfig'].objects.conf = MagicMock(return_value=4)
|
||||
evennia = self.server.Evennia(MagicMock())
|
||||
evennia.run_initial_setup()
|
||||
acct.delete()
|
||||
|
||||
@override_settings(DEFAULT_HOME="#1")
|
||||
def test_run_init_hooks(self):
|
||||
from evennia.utils import create
|
||||
obj1 = create.object(key="HookTestObj1")
|
||||
obj2 = create.object(key="HookTestObj2")
|
||||
acct1 = create.account("HookAcct1", "hooktest1@test.com", "testpasswd")
|
||||
acct2 = create.account("HookAcct2", "hooktest2@test.com", "testpasswd")
|
||||
|
||||
with patch("evennia.objects.models.ObjectDB") as mockobj:
|
||||
with patch("evennia.server.server.AccountDB") as mockacct:
|
||||
|
||||
mockacct.get_all_cached_instances = MagicMock(return_value=[acct1, acct2])
|
||||
mockobj.get_all_cached_instances = MagicMock(return_value=[obj1, obj2])
|
||||
mockobj.objects.clear_all_sessids = MagicMock()
|
||||
|
||||
evennia = self.server.Evennia(MagicMock())
|
||||
evennia.run_init_hooks('reload')
|
||||
evennia.run_init_hooks('reset')
|
||||
evennia.run_init_hooks('shutdown')
|
||||
|
||||
mockacct.get_all_cached_instances.assert_called()
|
||||
mockobj.get_all_cached_instances.assert_called()
|
||||
mockobj.objects.clear_all_sessids.assert_called_with()
|
||||
|
||||
@patch('evennia.server.server.INFO_DICT', {"test": "foo"})
|
||||
def test_get_info_dict(self):
|
||||
evennia = self.server.Evennia(MagicMock())
|
||||
self.assertEqual(evennia.get_info_dict(), {"test": "foo"})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue