mirror of
https://github.com/evennia/evennia.git
synced 2026-03-30 12:37:16 +02:00
Adds create() method to DefaultScript and unit test for DefaultScript.create().
This commit is contained in:
parent
18bcc4ffa6
commit
f943b3e179
2 changed files with 37 additions and 1 deletions
|
|
@ -12,7 +12,7 @@ from django.utils.translation import ugettext as _
|
|||
from evennia.typeclasses.models import TypeclassBase
|
||||
from evennia.scripts.models import ScriptDB
|
||||
from evennia.scripts.manager import ScriptManager
|
||||
from evennia.utils import logger
|
||||
from evennia.utils import create, logger
|
||||
from future.utils import with_metaclass
|
||||
|
||||
__all__ = ["DefaultScript", "DoNothing", "Store"]
|
||||
|
|
@ -323,6 +323,32 @@ class DefaultScript(ScriptBase):
|
|||
or describe a state that changes under certain conditions.
|
||||
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def create(cls, key, **kwargs):
|
||||
"""
|
||||
Provides a passthrough interface to the utils.create_script() function.
|
||||
|
||||
Args:
|
||||
key (str): Name of the new object.
|
||||
|
||||
Returns:
|
||||
object (Object): A newly created object of the given typeclass.
|
||||
errors (list): A list of errors in string form, if any.
|
||||
|
||||
"""
|
||||
errors = []
|
||||
obj = None
|
||||
|
||||
kwargs['key'] = key
|
||||
|
||||
try:
|
||||
obj = create.create_script(**kwargs)
|
||||
except Exception as e:
|
||||
errors.append("The script '%s' encountered errors and could not be created." % key)
|
||||
logger.log_err(e)
|
||||
|
||||
return obj, errors
|
||||
|
||||
def at_script_creation(self):
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -1,10 +1,20 @@
|
|||
# this is an optimized version only available in later Django versions
|
||||
from unittest import TestCase
|
||||
from evennia import DefaultScript
|
||||
from evennia.scripts.models import ScriptDB, ObjectDoesNotExist
|
||||
from evennia.utils.create import create_script
|
||||
from evennia.utils.test_resources import EvenniaTest
|
||||
from evennia.scripts.scripts import DoNothing
|
||||
|
||||
|
||||
class TestScript(EvenniaTest):
|
||||
|
||||
def test_create(self):
|
||||
"Check the script can be created via the convenience method."
|
||||
obj, errors = DefaultScript.create('useless-machine')
|
||||
self.assertTrue(obj, errors)
|
||||
self.assertFalse(errors, errors)
|
||||
|
||||
class TestScriptDB(TestCase):
|
||||
"Check the singleton/static ScriptDB object works correctly"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue