<spanid="evennia-utils-test-resources"></span><h1>evennia.utils.test_resources<aclass="headerlink"href="#module-evennia.utils.test_resources"title="Permalink to this headline">¶</a></h1>
<p>Various helper resources for writing unittests.</p>
<p>Classes for testing Evennia core:</p>
<ulclass="simple">
<li><p><strong>BaseEvenniaTestCase</strong> - no default objects, only enforced default settings</p></li>
<li><p><strong>BaseEvenniaTest</strong> - all default objects, enforced default settings</p></li>
<li><p><strong>BaseEvenniaCommandTest</strong> - for testing Commands, enforced default settings</p></li>
</ul>
<p>Classes for testing game folder content:</p>
<ulclass="simple">
<li><dlclass="simple">
<dt><strong>EvenniaTestCase</strong> - no default objects, using gamedir settings (identical to</dt><dd><p>standard Python TestCase)</p>
</dd>
</dl>
</li>
<li><p><strong>EvenniaTest</strong> - all default objects, using gamedir settings</p></li>
<li><p><strong>EvenniaCommandTest</strong> - for testing game folder commands, using gamedir settings</p></li>
</ul>
<p>Other:</p>
<ulclass="simple">
<li><p><strong>EvenniaTestMixin</strong> - A class mixin for creating the test environment objects, for
making custom tests.</p></li>
<li><p><strong>EvenniaCommandMixin</strong> - A class mixin that adds support for command testing with the .call()
helper. Used by the command-test classes, but can be used for making a customt test class.</p></li>
</ul>
<dlclass="py function">
<dtid="evennia.utils.test_resources.mockdelay">
<codeclass="sig-prename descclassname">evennia.utils.test_resources.</code><codeclass="sig-name descname">mockdelay</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">timedelay</span></em>, <emclass="sig-param"><spanclass="n">callback</span></em>, <emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#mockdelay"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.mockdelay"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.utils.test_resources.</code><codeclass="sig-name descname">unload_module</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">module</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#unload_module"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.unload_module"title="Permalink to this definition">¶</a></dt>
<dd><p>Reset import so one can mock global constants.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>module</strong> (<em>module</em><em>, </em><em>object</em><em> or </em><em>str</em>) – The module will
be removed so it will have to be imported again. If given
an object, the module in which that object sits will be unloaded. A string
should directly give the module pathname to unload.</p>
</dd>
</dl>
<pclass="rubric">Example</p>
<divclass="highlight-default notranslate"><divclass="highlight"><pre><span></span><spanclass="c1"># (in a test method)</span>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.test_resources.</code><codeclass="sig-name descname">EvenniaTestMixin</code><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#EvenniaTestMixin"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestMixin"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">account_typeclass</code><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestMixin.account_typeclass"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="evennia.accounts.accounts.html#evennia.accounts.accounts.DefaultAccount"title="evennia.accounts.accounts.DefaultAccount"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.accounts.accounts.DefaultAccount</span></code></a></p>
<codeclass="sig-name descname">object_typeclass</code><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestMixin.object_typeclass"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="evennia.objects.objects.html#evennia.objects.objects.DefaultObject"title="evennia.objects.objects.DefaultObject"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.objects.objects.DefaultObject</span></code></a></p>
<codeclass="sig-name descname">character_typeclass</code><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestMixin.character_typeclass"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="evennia.objects.objects.html#evennia.objects.objects.DefaultCharacter"title="evennia.objects.objects.DefaultCharacter"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.objects.objects.DefaultCharacter</span></code></a></p>
<codeclass="sig-name descname">exit_typeclass</code><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestMixin.exit_typeclass"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="evennia.objects.objects.html#evennia.objects.objects.DefaultExit"title="evennia.objects.objects.DefaultExit"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.objects.objects.DefaultExit</span></code></a></p>
<codeclass="sig-name descname">room_typeclass</code><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestMixin.room_typeclass"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="evennia.objects.objects.html#evennia.objects.objects.DefaultRoom"title="evennia.objects.objects.DefaultRoom"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.objects.objects.DefaultRoom</span></code></a></p>
<codeclass="sig-name descname">script_typeclass</code><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestMixin.script_typeclass"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="evennia.scripts.scripts.html#evennia.scripts.scripts.DefaultScript"title="evennia.scripts.scripts.DefaultScript"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.scripts.scripts.DefaultScript</span></code></a></p>
<codeclass="sig-name descname">create_accounts</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#EvenniaTestMixin.create_accounts"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestMixin.create_accounts"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">teardown_accounts</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#EvenniaTestMixin.teardown_accounts"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestMixin.teardown_accounts"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">create_rooms</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#EvenniaTestMixin.create_rooms"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestMixin.create_rooms"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">create_objs</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#EvenniaTestMixin.create_objs"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestMixin.create_objs"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">create_chars</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#EvenniaTestMixin.create_chars"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestMixin.create_chars"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">create_script</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#EvenniaTestMixin.create_script"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestMixin.create_script"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">setup_session</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#EvenniaTestMixin.setup_session"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestMixin.setup_session"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">teardown_session</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#EvenniaTestMixin.teardown_session"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestMixin.teardown_session"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">setUp</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#EvenniaTestMixin.setUp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestMixin.setUp"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">tearDown</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#EvenniaTestMixin.tearDown"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestMixin.tearDown"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.test_resources.</code><codeclass="sig-name descname">EvenniaCommandTestMixin</code><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#EvenniaCommandTestMixin"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaCommandTestMixin"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">call</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">cmdobj</span></em>, <emclass="sig-param"><spanclass="n">input_args</span></em>, <emclass="sig-param"><spanclass="n">msg</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">cmdset</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">noansi</span><spanclass="o">=</span><spanclass="default_value">True</span></em>, <emclass="sig-param"><spanclass="n">caller</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">receiver</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">cmdstring</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">obj</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">inputs</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">raw_string</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#EvenniaCommandTestMixin.call"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaCommandTestMixin.call"title="Permalink to this definition">¶</a></dt>
<dd><p>Test a command by assigning all the needed properties to a cmdobj and
running the sequence. The resulting <strong>.msg</strong> calls will be mocked and
the text= calls to them compared to a expected output.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>cmdobj</strong> (<aclass="reference internal"href="evennia.commands.command.html#evennia.commands.command.Command"title="evennia.commands.command.Command"><em>Command</em></a>) – The command object to use.</p></li>
<li><p><strong>input_args</strong> (<em>str</em>) – This should be the full input the Command should
see, such as ‘look here’. This will become <strong>.args</strong> for the Command
instance to parse.</p></li>
<li><p><strong>msg</strong> (<em>str</em><em> or </em><em>dict</em><em>, </em><em>optional</em>) – This is the expected return value(s)
returned through <strong>caller.msg(text=…)</strong> calls in the command. If a string, the
receiver is controlled with the <strong>receiver</strong> kwarg (defaults to <strong>caller</strong>).
If this is a <strong>dict</strong>, it is a mapping
<strong>{receiver1: “expected1”, receiver2: “expected2”,…}</strong> and <strong>receiver</strong> is
ignored. The message(s) are compared with the actual messages returned
to the receiver(s) as the Command runs. Each check uses <strong>.startswith</strong>,
so you can choose to only include the first part of the
returned message if that’s enough to verify a correct result. EvMenu
decorations (like borders) are stripped and should not be included. This
should also not include color tags unless <strong>noansi=False</strong>.
If the command returns texts in multiple separate <strong>.msg</strong>-
calls to a receiver, separate these with <strong>|</strong> if <strong>noansi=True</strong>
(default) and <strong>||</strong> if <strong>noansi=False</strong>. If no <strong>msg</strong> is given (<strong>None</strong>),
then no automatic comparison will be done.</p></li>
<li><p><strong>cmdset</strong> (<em>str</em><em>, </em><em>optional</em>) – If given, make <strong>.cmdset</strong> available on the Command
instance as it runs. While <strong>.cmdset</strong> is normally available on the
Command instance by default, this is usually only used by
commands that explicitly operates/displays cmdsets, like
<strong>examine</strong>.</p></li>
<li><p><strong>noansi</strong> (<em>str</em><em>, </em><em>optional</em>) – By default the color tags of the <strong>msg</strong> is
ignored, this makes them significant. If unset, <strong>msg</strong> must contain
the same color tags as the actual return message.</p></li>
<li><p><strong>caller</strong> (<em>Object</em><em> or </em><em>Account</em><em>, </em><em>optional</em>) – By default <strong>self.char1</strong> is used as the
command-caller (the <strong>.caller</strong> property on the Command). This allows to
execute with another caller, most commonly an Account.</p></li>
<li><p><strong>receiver</strong> (<em>Object</em><em> or </em><em>Account</em><em>, </em><em>optional</em>) – This is the object to receive the
return messages we want to test. By default this is the same as <strong>caller</strong>
(which in turn defaults to is <strong>self.char1</strong>). Note that if <strong>msg</strong> is
a <strong>dict</strong>, this is ignored since the receiver is already specified there.</p></li>
<li><p><strong>cmdstring</strong> (<em>str</em><em>, </em><em>optional</em>) – Normally this is the Command’s <strong>key</strong>.
This allows for tweaking the <strong>.cmdname</strong> property of the
Command**. This isb used for commands with multiple aliases,
where the command explicitly checs which alias was used to
determine its functionality.</p></li>
<li><p><strong>obj</strong> (<em>str</em><em>, </em><em>optional</em>) – This sets the <strong>.obj</strong> property of the Command - the
object on which the Command ‘sits’. By default this is the same as <strong>caller</strong>.
This can be used for testing on-object Command interactions.</p></li>
<li><p><strong>inputs</strong> (<em>list</em><em>, </em><em>optional</em>) – A list of strings to pass to functions that pause to
take input from the user (normally using <strong>@interactive</strong> and
<strong>ret = yield(question)</strong> or <strong>evmenu.get_input</strong>). Each element of the
list will be passed into the command as if the user answered each prompt
in that order.</p></li>
<li><p><strong>raw_string</strong> (<em>str</em><em>, </em><em>optional</em>) – Normally the <strong>.raw_string</strong> property is set as
a combination of your <strong>key/cmdname</strong> and <strong>input_args</strong>. This allows
direct control of what this is, for example for testing edge cases
or malformed inputs.</p></li>
</ul>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><p><em>str or dict</em>–</p>
<dlclass="simple">
<dt>The message sent to <strong>receiver</strong>, or a dict of</dt><dd><p><strong>{receiver: “msg”, …}</strong> if multiple are given. This is usually
only used with <strong>msg=None</strong> to do the validation externally.</p>
</dd>
</dl>
</p>
</dd>
<dtclass="field-odd">Raises</dt>
<ddclass="field-odd"><p><strong>AssertionError</strong>– If the returns of <strong>.msg</strong> calls (tested with <strong>.startswith</strong>) does not
match <strong>expected_input</strong>.</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>As part of the tests, all methods of the Command will be called in
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.test_resources.</code><codeclass="sig-name descname">BaseEvenniaTestCase</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">methodName</span><spanclass="o">=</span><spanclass="default_value">'runTest'</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#BaseEvenniaTestCase"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.BaseEvenniaTestCase"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">tearDown</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span>→ None<aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#BaseEvenniaTestCase.tearDown"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.BaseEvenniaTestCase.tearDown"title="Permalink to this definition">¶</a></dt>
<dd><p>Hook method for deconstructing the test fixture after testing it.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.test_resources.</code><codeclass="sig-name descname">EvenniaTestCase</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">methodName</span><spanclass="o">=</span><spanclass="default_value">'runTest'</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#EvenniaTestCase"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestCase"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">tearDown</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span>→ None<aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#EvenniaTestCase.tearDown"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTestCase.tearDown"title="Permalink to this definition">¶</a></dt>
<dd><p>Hook method for deconstructing the test fixture after testing it.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.test_resources.</code><codeclass="sig-name descname">BaseEvenniaTest</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">methodName</span><spanclass="o">=</span><spanclass="default_value">'runTest'</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#BaseEvenniaTest"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.BaseEvenniaTest"title="Permalink to this definition">¶</a></dt>
<p>This class parent has all default objects and uses only default settings.</p>
</dd></dl>
<dlclass="py class">
<dtid="evennia.utils.test_resources.EvenniaTest">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.test_resources.</code><codeclass="sig-name descname">EvenniaTest</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">methodName</span><spanclass="o">=</span><spanclass="default_value">'runTest'</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#EvenniaTest"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTest"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">account_typeclass</code><emclass="property"> = 'typeclasses.accounts.Account'</em><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTest.account_typeclass"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">object_typeclass</code><emclass="property"> = 'typeclasses.objects.Object'</em><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTest.object_typeclass"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">character_typeclass</code><emclass="property"> = 'typeclasses.characters.Character'</em><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTest.character_typeclass"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">exit_typeclass</code><emclass="property"> = 'typeclasses.exits.Exit'</em><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTest.exit_typeclass"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">room_typeclass</code><emclass="property"> = 'typeclasses.rooms.Room'</em><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTest.room_typeclass"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">script_typeclass</code><emclass="property"> = 'typeclasses.scripts.Script'</em><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaTest.script_typeclass"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.test_resources.</code><codeclass="sig-name descname">BaseEvenniaCommandTest</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">methodName</span><spanclass="o">=</span><spanclass="default_value">'runTest'</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#BaseEvenniaCommandTest"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.BaseEvenniaCommandTest"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.test_resources.</code><codeclass="sig-name descname">EvenniaCommandTest</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">methodName</span><spanclass="o">=</span><spanclass="default_value">'runTest'</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/test_resources.html#EvenniaCommandTest"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.test_resources.EvenniaCommandTest"title="Permalink to this definition">¶</a></dt>