mirror of
https://github.com/evennia/evennia.git
synced 2026-03-29 20:17:16 +02:00
Adds create() method to DefaultChannel object, and unit test.
This commit is contained in:
parent
6d0a670340
commit
98bc76cd60
2 changed files with 50 additions and 1 deletions
|
|
@ -5,7 +5,7 @@ Base typeclass for in-game Channels.
|
|||
from evennia.typeclasses.models import TypeclassBase
|
||||
from evennia.comms.models import TempMsg, ChannelDB
|
||||
from evennia.comms.managers import ChannelManager
|
||||
from evennia.utils import logger
|
||||
from evennia.utils import create, logger
|
||||
from evennia.utils.utils import make_iter
|
||||
from future.utils import with_metaclass
|
||||
_CHANNEL_HANDLER = None
|
||||
|
|
@ -220,6 +220,42 @@ class DefaultChannel(with_metaclass(TypeclassBase, ChannelDB)):
|
|||
return self.locks.check(accessing_obj, access_type=access_type,
|
||||
default=default, no_superuser_bypass=no_superuser_bypass)
|
||||
|
||||
@classmethod
|
||||
def create(cls, key, *args, **kwargs):
|
||||
"""
|
||||
Creates a basic Channel with default parameters, unless otherwise
|
||||
specified or extended.
|
||||
|
||||
Provides a friendlier interface to the utils.create_channel() function.
|
||||
|
||||
Args:
|
||||
key (str): This must be unique.
|
||||
|
||||
Kwargs:
|
||||
aliases (list of str): List of alternative (likely shorter) keynames.
|
||||
description (str): A description of the channel, for use in listings.
|
||||
locks (str): Lockstring.
|
||||
keep_log (bool): Log channel throughput.
|
||||
typeclass (str or class): The typeclass of the Channel (not
|
||||
often used).
|
||||
|
||||
Returns:
|
||||
channel (Channel): A newly created Channel.
|
||||
errors (list): A list of errors in string form, if any.
|
||||
|
||||
"""
|
||||
errors = []
|
||||
obj = None
|
||||
|
||||
try:
|
||||
kwargs['desc'] = kwargs.pop('description', '')
|
||||
obj = create.create_channel(key, *args, **kwargs)
|
||||
except Exception as exc:
|
||||
errors.append("An error occurred while creating this '%s' object." % key)
|
||||
logger.log_err(exc)
|
||||
|
||||
return obj, errors
|
||||
|
||||
def delete(self):
|
||||
"""
|
||||
Deletes channel while also cleaning up channelhandler.
|
||||
|
|
|
|||
13
evennia/comms/tests.py
Normal file
13
evennia/comms/tests.py
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
from evennia.utils.test_resources import EvenniaTest
|
||||
from evennia import DefaultChannel
|
||||
|
||||
class ObjectCreationTest(EvenniaTest):
|
||||
|
||||
def test_channel_create(self):
|
||||
description = "A place to talk about coffee."
|
||||
|
||||
obj, errors = DefaultChannel.create('coffeetalk', description=description)
|
||||
self.assertTrue(obj, errors)
|
||||
self.assertFalse(errors, errors)
|
||||
self.assertEqual(description, obj.db.desc)
|
||||
Loading…
Add table
Add a link
Reference in a new issue