From 07dd81851e49ba25f35dee389e9c9c88500c96c3 Mon Sep 17 00:00:00 2001 From: Griatch Date: Fri, 13 Feb 2015 08:09:29 +0100 Subject: [PATCH] Fixed some bugs in new oobhandler mechanism to make tests work again, but oobhandler is still not tested. --- evennia/commands/default/system.py | 1 - evennia/commands/default/tests.py | 4 ---- evennia/server/oobhandler.py | 6 +++--- evennia/server/server.py | 13 ------------- evennia/server/tests.py | 1 + evennia/typeclasses/models.py | 3 --- evennia/utils/idmapper/base.py | 5 +++-- 7 files changed, 7 insertions(+), 26 deletions(-) diff --git a/evennia/commands/default/system.py b/evennia/commands/default/system.py index a112583b8..fe6285104 100644 --- a/evennia/commands/default/system.py +++ b/evennia/commands/default/system.py @@ -13,7 +13,6 @@ import twisted from time import time as timemeasure from django.conf import settings -#from evennia.server.caches import get_cache_sizes from evennia.server.sessionhandler import SESSIONS from evennia.scripts.models import ScriptDB from evennia.objects.models import ObjectDB diff --git a/evennia/commands/default/tests.py b/evennia/commands/default/tests.py index 792212bd9..245684dcd 100644 --- a/evennia/commands/default/tests.py +++ b/evennia/commands/default/tests.py @@ -23,10 +23,6 @@ from evennia.commands.default import help, general, system, admin, player, build from evennia.utils import ansi from evennia.server.sessionhandler import SESSIONS -from django.db.models.signals import post_save -from evennia.server.caches import field_post_save -post_save.connect(field_post_save, dispatch_uid="fieldcache") - # set up signal here since we are not starting the server _RE = re.compile(r"^\+|-+\+|\+-+|--*|\|", re.MULTILINE) diff --git a/evennia/server/oobhandler.py b/evennia/server/oobhandler.py index d486bdc62..b26d6aeef 100644 --- a/evennia/server/oobhandler.py +++ b/evennia/server/oobhandler.py @@ -41,7 +41,7 @@ from evennia.server.sessionhandler import SESSIONS from evennia.scripts.tickerhandler import TickerHandler from evennia.utils.dbserialize import dbserialize, dbunserialize, pack_dbobj, unpack_dbobj from evennia.utils import logger -from evennia.utils.utils import make_iter +from evennia.utils.utils import make_iter, mod_import _SA = object.__setattr__ _GA = object.__getattribute__ @@ -49,8 +49,8 @@ _DA = object.__delattr__ # load resources from plugin module _OOB_FUNCS = {} -for mod in make_iter(settings.OOB_PLUGIN_MODULES): - _OOB_FUNCS.update(mod.CMD_MAP) +for modname in make_iter(settings.OOB_PLUGIN_MODULES): + _OOB_FUNCS.update(mod_import(modname).CMD_MAP) # get the command to receive eventual error strings _OOB_ERROR = _OOB_FUNCS.get("oob_error", None) diff --git a/evennia/server/server.py b/evennia/server/server.py index e82fd4404..d5efc52b7 100644 --- a/evennia/server/server.py +++ b/evennia/server/server.py @@ -32,19 +32,6 @@ from evennia.utils.utils import get_evennia_version, mod_import, make_iter from evennia.comms import channelhandler from evennia.server.sessionhandler import SESSIONS -# setting up server-side field cache - -from django.db.models.signals import post_save -from evennia.server.caches import field_post_save -#pre_save.connect(field_pre_save, dispatch_uid="fieldcache") -post_save.connect(field_post_save, dispatch_uid="fieldcache") - -#from evennia.server.caches import post_attr_update -#from django.db.models.signals import m2m_changed - -# connect to attribute cache signal -#m2m_changed.connect(post_attr_update, sender=TypedObject.db_attributes.through) - _SA = object.__setattr__ if os.name == 'nt': diff --git a/evennia/server/tests.py b/evennia/server/tests.py index 7ae98dcfc..ff456b1c6 100644 --- a/evennia/server/tests.py +++ b/evennia/server/tests.py @@ -30,6 +30,7 @@ except ImportError: import unittest from django.conf import settings +#from django.test.runner import DiscoverRunner from django.test.simple import DjangoTestSuiteRunner from evennia.utils.utils import mod_import diff --git a/evennia/typeclasses/models.py b/evennia/typeclasses/models.py index 55ee8c845..b62020fa9 100644 --- a/evennia/typeclasses/models.py +++ b/evennia/typeclasses/models.py @@ -38,10 +38,7 @@ from evennia.typeclasses.tags import Tag, TagHandler, AliasHandler, PermissionHa from evennia.utils.idmapper.models import SharedMemoryModel from evennia.utils.idmapper.base import SharedMemoryModelBase -#from evennia.server.caches import set_attr_cache -#from evennia.server.caches import call_ndb_hooks -#from evennia.server.models import ServerConfig from evennia.typeclasses import managers from evennia.locks.lockhandler import LockHandler from evennia.utils.utils import ( diff --git a/evennia/utils/idmapper/base.py b/evennia/utils/idmapper/base.py index 9da19f599..7cdcec28a 100755 --- a/evennia/utils/idmapper/base.py +++ b/evennia/utils/idmapper/base.py @@ -334,9 +334,10 @@ class SharedMemoryModel(Model): callFromThread(_save_callback, self, *args, **kwargs) # update field-update hooks and eventual OOB watchers - if "update_fields" in kwargs: + if "update_fields" in kwargs and kwargs["update_fields"]: # get field objects from their names - update_fields = (self._meta.get_field_by_name(field)[0] for field in kwargs["update_fields"]) + update_fields = (self._meta.get_field_by_name(field)[0] + for field in kwargs.get("update_fields")) else: # meta.fields are already field objects; get them all update_fields = self._meta.fields