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.typeclasses.models import TypeclassBase
|
||||||
from evennia.scripts.models import ScriptDB
|
from evennia.scripts.models import ScriptDB
|
||||||
from evennia.scripts.manager import ScriptManager
|
from evennia.scripts.manager import ScriptManager
|
||||||
from evennia.utils import logger
|
from evennia.utils import create, logger
|
||||||
from future.utils import with_metaclass
|
from future.utils import with_metaclass
|
||||||
|
|
||||||
__all__ = ["DefaultScript", "DoNothing", "Store"]
|
__all__ = ["DefaultScript", "DoNothing", "Store"]
|
||||||
|
|
@ -324,6 +324,32 @@ class DefaultScript(ScriptBase):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@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):
|
def at_script_creation(self):
|
||||||
"""
|
"""
|
||||||
Only called once, when script is first created.
|
Only called once, when script is first created.
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,20 @@
|
||||||
# this is an optimized version only available in later Django versions
|
# this is an optimized version only available in later Django versions
|
||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
|
from evennia import DefaultScript
|
||||||
from evennia.scripts.models import ScriptDB, ObjectDoesNotExist
|
from evennia.scripts.models import ScriptDB, ObjectDoesNotExist
|
||||||
from evennia.utils.create import create_script
|
from evennia.utils.create import create_script
|
||||||
|
from evennia.utils.test_resources import EvenniaTest
|
||||||
from evennia.scripts.scripts import DoNothing
|
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):
|
class TestScriptDB(TestCase):
|
||||||
"Check the singleton/static ScriptDB object works correctly"
|
"Check the singleton/static ScriptDB object works correctly"
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue