Fixed some bugs in new oobhandler mechanism to make tests work again, but oobhandler is still not tested.

This commit is contained in:
Griatch 2015-02-13 08:09:29 +01:00
parent 48774d0f3c
commit 07dd81851e
7 changed files with 7 additions and 26 deletions

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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':

View file

@ -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

View file

@ -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 (

View file

@ -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