def test_autocmdsets(self): import evennia from evennia.commands.default.cmdset_account import AccountCmdSet from evennia.comms.channelhandler import CHANNEL_HANDLER testchannel = evennia.create_channel("channeltest", locks="listen:all();send:all()") CHANNEL_HANDLER.add(testchannel) CHANNEL_HANDLER.update() self.assertTrue(testchannel.connect(self.account)) self.assertTrue(testchannel.has_connection(self.account)) a, b, c, d = self.cmdset_a, self.cmdset_b, self.cmdset_c, self.cmdset_d self.set_cmdsets(self.account, a, b, c, d) deferred = cmdhandler.get_and_merge_cmdsets(self.session, self.session, self.account, self.char1, "session", "") def _callback(cmdset): pcmdset = AccountCmdSet() pcmdset.at_cmdset_creation() pcmds = [cmd.key for cmd in pcmdset.commands ] + ["a", "b", "c", "d"] + ["out"] self.assertTrue( all(cmd.key or hasattr(cmd, "is_channel") in pcmds for cmd in cmdset.commands)) self.assertTrue( any(hasattr(cmd, "is_channel") for cmd in cmdset.commands)) deferred.addCallback(_callback) return deferred
def test_from_object(self): self.set_cmdsets(self.obj1, self.cmdset_a) deferred = cmdhandler.get_and_merge_cmdsets(self.obj1, None, None, self.obj1, "object", "") # get_and_merge_cmdsets converts to lower-case internally. _callback = lambda cmdset: self.assertEqual(sum(1 for cmd in cmdset.commands if cmd.key in ("a", "b", "c", "d")), 4) deferred.addCallback(_callback) return deferred
def test_from_object(self): self.set_cmdsets(self.obj1, self.cmdset_a) deferred = cmdhandler.get_and_merge_cmdsets(self.obj1, None, None, self.obj1, "object") # get_and_merge_cmdsets converts to lower-case internally. _callback = lambda cmdset: self.assertEqual(sum(1 for cmd in cmdset.commands if cmd.key in ("a", "b", "c", "d")), 4) deferred.addCallback(_callback) return deferred
def test_from_session(self): a = self.cmdset_a a.no_channels = True self.set_cmdsets(self.session, a) deferred = cmdhandler.get_and_merge_cmdsets(self.session, self.session, None, None, "session", "") def _callback(cmdset): self.assertEqual(cmdset.key, "A") deferred.addCallback(_callback) return deferred
def test_from_session(self): a = self.cmdset_a a.no_channels = True self.set_cmdsets(self.session, a) deferred = cmdhandler.get_and_merge_cmdsets(self.session, self.session, None, None, "session") def _callback(cmdset): self.assertEqual(cmdset.key, "A") deferred.addCallback(_callback) return deferred
def test_duplicates(self): a, b, c, d = self.cmdset_a, self.cmdset_b, self.cmdset_c, self.cmdset_d a.no_exits = True a.no_channels = True b.duplicates = True d.duplicates = True self.set_cmdsets(self.obj1, a, b, c, d) deferred = cmdhandler.get_and_merge_cmdsets(self.obj1, None, None, self.obj1, "object", "") def _callback(cmdset): self.assertEqual(len(cmdset.commands), 9) deferred.addCallback(_callback) return deferred
def test_multimerge(self): a, b, c, d = self.cmdset_a, self.cmdset_b, self.cmdset_c, self.cmdset_d a.no_exits = True a.no_channels = True self.set_cmdsets(self.obj1, a, b, c, d) deferred = cmdhandler.get_and_merge_cmdsets(self.obj1, None, None, self.obj1, "object", "") def _callback(cmdset): self.assertTrue(cmdset.no_exits) self.assertTrue(cmdset.no_channels) self.assertEqual(cmdset.key, "D") deferred.addCallback(_callback) return deferred
def test_duplicates(self): a, b, c, d = self.cmdset_a, self.cmdset_b, self.cmdset_c, self.cmdset_d a.no_exits = True a.no_channels = True b.duplicates = True d.duplicates = True self.set_cmdsets(self.obj1, a, b, c, d) deferred = cmdhandler.get_and_merge_cmdsets(self.obj1, None, None, self.obj1, "object") def _callback(cmdset): self.assertEqual(len(cmdset.commands), 9) deferred.addCallback(_callback) return deferred
def test_multimerge(self): a, b, c, d = self.cmdset_a, self.cmdset_b, self.cmdset_c, self.cmdset_d a.no_exits = True a.no_channels = True self.set_cmdsets(self.obj1, a, b, c, d) deferred = cmdhandler.get_and_merge_cmdsets(self.obj1, None, None, self.obj1, "object") def _callback(cmdset): self.assertTrue(cmdset.no_exits) self.assertTrue(cmdset.no_channels) self.assertEqual(cmdset.key, "D") deferred.addCallback(_callback) return deferred
def test_from_player(self): from evennia.commands.default.cmdset_player import PlayerCmdSet a = self.cmdset_a a.no_channels = True self.set_cmdsets(self.player, a) deferred = cmdhandler.get_and_merge_cmdsets(self.player, None, self.player, None, "player", "") # get_and_merge_cmdsets converts to lower-case internally. def _callback(cmdset): pcmdset = PlayerCmdSet() pcmdset.at_cmdset_creation() pcmds = [cmd.key for cmd in pcmdset.commands] + ["a", "b", "c", "d"] self.assertTrue(all(cmd.key in pcmds for cmd in cmdset.commands)) #_callback = lambda cmdset: self.assertEqual(sum(1 for cmd in cmdset.commands if cmd.key in ("a", "b", "c", "d")), 4) deferred.addCallback(_callback) return deferred
def test_from_player(self): from evennia.commands.default.cmdset_player import PlayerCmdSet a = self.cmdset_a a.no_channels = True self.set_cmdsets(self.player, a) deferred = cmdhandler.get_and_merge_cmdsets(self.player, None, self.player, None, "player") # get_and_merge_cmdsets converts to lower-case internally. def _callback(cmdset): pcmdset = PlayerCmdSet() pcmdset.at_cmdset_creation() pcmds = [cmd.key for cmd in pcmdset.commands] + ["a", "b", "c", "d"] self.assertTrue(all(cmd.key in pcmds for cmd in cmdset.commands)) #_callback = lambda cmdset: self.assertEqual(sum(1 for cmd in cmdset.commands if cmd.key in ("a", "b", "c", "d")), 4) deferred.addCallback(_callback) return deferred
def test_autocmdsets(self): import evennia from evennia.commands.default.cmdset_player import PlayerCmdSet from evennia.comms.channelhandler import CHANNEL_HANDLER testchannel = evennia.create_channel("channeltest", locks="listen:all();send:all()") CHANNEL_HANDLER.add(testchannel) CHANNEL_HANDLER.update() 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 self.set_cmdsets(self.player, a, b, c, d) deferred = cmdhandler.get_and_merge_cmdsets(self.session, self.session, self.player, self.char1, "session", "") def _callback(cmdset): pcmdset = PlayerCmdSet() pcmdset.at_cmdset_creation() pcmds = [cmd.key for cmd in pcmdset.commands] + ["a", "b", "c", "d"] + ["out"] self.assertTrue(all(cmd.key or hasattr(cmd, "is_channel") in pcmds for cmd in cmdset.commands)) self.assertTrue(any(hasattr(cmd, "is_channel") for cmd in cmdset.commands)) deferred.addCallback(_callback) return deferred