Fix edge cases in channelhandler and make unittests work.
This commit is contained in:
parent
e39e1bdd45
commit
cd9c11f6a8
3 changed files with 13 additions and 10 deletions
|
|
@ -309,5 +309,5 @@ class TestBatchProcess(CommandTest):
|
||||||
def test_batch_commands(self):
|
def test_batch_commands(self):
|
||||||
# cannot test batchcode here, it must run inside the server process
|
# cannot test batchcode here, it must run inside the server process
|
||||||
self.call(batchprocess.CmdBatchCommands(), "example_batch_cmds", "Running Batchcommand processor Automatic mode for example_batch_cmds")
|
self.call(batchprocess.CmdBatchCommands(), "example_batch_cmds", "Running Batchcommand processor Automatic mode for example_batch_cmds")
|
||||||
#self.call(batchprocess.CmdBatchCode(), "examples.batch_code", "")
|
# we make sure to delete the button again here to stop the running reactor
|
||||||
|
self.call(building.CmdDestroy(), "button", "button was destroyed.")
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ Unit testing for the Command system itself.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from evennia.utils.test_resources import EvenniaTest, SESSIONS, TestCase
|
from evennia.utils.test_resources import EvenniaTest, TestCase
|
||||||
from evennia.commands.cmdset import CmdSet
|
from evennia.commands.cmdset import CmdSet
|
||||||
from evennia.commands.command import Command
|
from evennia.commands.command import Command
|
||||||
|
|
||||||
|
|
@ -307,9 +307,11 @@ class TestGetAndMergeCmdSets(TwistedTestCase, EvenniaTest):
|
||||||
import evennia
|
import evennia
|
||||||
from evennia.commands.default.cmdset_player import PlayerCmdSet
|
from evennia.commands.default.cmdset_player import PlayerCmdSet
|
||||||
from evennia.comms.channelhandler import CHANNEL_HANDLER
|
from evennia.comms.channelhandler import CHANNEL_HANDLER
|
||||||
testchannel = evennia.create_channel("testchannel", locks="listen:all();send:all()")
|
testchannel = evennia.create_channel("channeltest", locks="listen:all();send:all()")
|
||||||
CHANNEL_HANDLER.add(testchannel)
|
CHANNEL_HANDLER.add(testchannel)
|
||||||
|
CHANNEL_HANDLER.update()
|
||||||
self.assertTrue(testchannel.connect(self.player))
|
self.assertTrue(testchannel.connect(self.player))
|
||||||
|
self.assertTrue(testchannel.has_connection(self.player))
|
||||||
a, b, c, d = self.cmdset_a, self.cmdset_b, self.cmdset_c, self.cmdset_d
|
a, b, c, d = self.cmdset_a, self.cmdset_b, self.cmdset_c, self.cmdset_d
|
||||||
self.set_cmdsets(self.player, a, b, c, d)
|
self.set_cmdsets(self.player, a, b, c, d)
|
||||||
deferred = cmdhandler.get_and_merge_cmdsets(self.session, self.session, self.player, self.char1, "session")
|
deferred = cmdhandler.get_and_merge_cmdsets(self.session, self.session, self.player, self.char1, "session")
|
||||||
|
|
@ -334,9 +336,3 @@ class TestGetAndMergeCmdSets(TwistedTestCase, EvenniaTest):
|
||||||
self.assertEqual(len(cmdset.commands), 9)
|
self.assertEqual(len(cmdset.commands), 9)
|
||||||
deferred.addCallback(_callback)
|
deferred.addCallback(_callback)
|
||||||
return deferred
|
return deferred
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,8 @@ _GA = object.__getattribute__
|
||||||
_SA = object.__setattr__
|
_SA = object.__setattr__
|
||||||
_DA = object.__delattr__
|
_DA = object.__delattr__
|
||||||
|
|
||||||
|
_CHANNELHANDLER = None
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------
|
#------------------------------------------------------------
|
||||||
#
|
#
|
||||||
|
|
@ -486,6 +488,9 @@ class SubscriptionHandler(object):
|
||||||
no hooks will be called.
|
no hooks will be called.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
global _CHANNELHANDLER
|
||||||
|
if not _CHANNELHANDLER:
|
||||||
|
from evennia.comms.channelhandler import CHANNEL_HANDLER as _CHANNELHANDLER
|
||||||
for subscriber in make_iter(entity):
|
for subscriber in make_iter(entity):
|
||||||
if subscriber:
|
if subscriber:
|
||||||
clsname = subscriber.__dbclass__.__name__
|
clsname = subscriber.__dbclass__.__name__
|
||||||
|
|
@ -494,6 +499,7 @@ class SubscriptionHandler(object):
|
||||||
self.obj.db_object_subscriptions.add(subscriber)
|
self.obj.db_object_subscriptions.add(subscriber)
|
||||||
elif clsname == "PlayerDB":
|
elif clsname == "PlayerDB":
|
||||||
self.obj.db_subscriptions.add(subscriber)
|
self.obj.db_subscriptions.add(subscriber)
|
||||||
|
_CHANNELHANDLER.cached_cmdsets.pop(subscriber, None)
|
||||||
self._recache()
|
self._recache()
|
||||||
|
|
||||||
def remove(self, entity):
|
def remove(self, entity):
|
||||||
|
|
@ -513,6 +519,7 @@ class SubscriptionHandler(object):
|
||||||
self.obj.db_subscriptions.remove(entity)
|
self.obj.db_subscriptions.remove(entity)
|
||||||
elif clsname == "ObjectDB":
|
elif clsname == "ObjectDB":
|
||||||
self.obj.db_object_subscriptions.remove(entity)
|
self.obj.db_object_subscriptions.remove(entity)
|
||||||
|
_CHANNELHANDLER.cached_cmdsets.pop(subscriber, None)
|
||||||
self._recache()
|
self._recache()
|
||||||
|
|
||||||
def all(self):
|
def all(self):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue