mirror of
https://github.com/evennia/evennia.git
synced 2026-03-30 20:47:17 +02:00
2282 lines
No EOL
344 KiB
HTML
2282 lines
No EOL
344 KiB
HTML
|
|
<!DOCTYPE html>
|
|
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>evennia.commands.default.tests — Evennia 1.0-dev documentation</title>
|
|
<link rel="stylesheet" href="../../../../_static/nature.css" type="text/css" />
|
|
<link rel="stylesheet" href="../../../../_static/pygments.css" type="text/css" />
|
|
<script id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
|
|
<script src="../../../../_static/jquery.js"></script>
|
|
<script src="../../../../_static/underscore.js"></script>
|
|
<script src="../../../../_static/doctools.js"></script>
|
|
<script src="../../../../_static/language_data.js"></script>
|
|
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
|
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
|
<link rel="shortcut icon" href="../../../../_static/favicon.ico"/>
|
|
<link rel="index" title="Index" href="../../../../genindex.html" />
|
|
<link rel="search" title="Search" href="../../../../search.html" />
|
|
</head><body>
|
|
<div class="related" role="navigation" aria-label="related navigation">
|
|
<h3>Navigation</h3>
|
|
<ul>
|
|
<li class="right" style="margin-right: 10px">
|
|
<a href="../../../../genindex.html" title="General Index"
|
|
accesskey="I">index</a></li>
|
|
<li class="right" >
|
|
<a href="../../../../py-modindex.html" title="Python Module Index"
|
|
>modules</a> |</li>
|
|
<li class="nav-item nav-item-0"><a href="../../../../index.html">Evennia 1.0-dev</a> »</li>
|
|
<li class="nav-item nav-item-1"><a href="../../../index.html" >Module code</a> »</li>
|
|
<li class="nav-item nav-item-2"><a href="../../../evennia.html" accesskey="U">evennia</a> »</li>
|
|
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.tests</a></li>
|
|
</ul>
|
|
<div class="develop">develop branch</div>
|
|
</div>
|
|
|
|
<div class="document">
|
|
<div class="documentwrapper">
|
|
<div class="bodywrapper">
|
|
<div class="body" role="main">
|
|
|
|
<h1>Source code for evennia.commands.default.tests</h1><div class="highlight"><pre>
|
|
<span></span><span class="c1"># -*- coding: utf-8 -*-</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> ** OBS - this is not a normal command module! **</span>
|
|
<span class="sd"> ** You cannot import anything in this module as a command! **</span>
|
|
|
|
<span class="sd">This is part of the Evennia unittest framework, for testing the</span>
|
|
<span class="sd">stability and integrity of the codebase during updates. This module</span>
|
|
<span class="sd">test the default command set. It is instantiated by the</span>
|
|
<span class="sd">evennia/objects/tests.py module, which in turn is run by as part of the</span>
|
|
<span class="sd">main test suite started with</span>
|
|
<span class="sd"> > python game/manage.py test.</span>
|
|
|
|
<span class="sd">"""</span>
|
|
<span class="kn">import</span> <span class="nn">re</span>
|
|
<span class="kn">import</span> <span class="nn">types</span>
|
|
<span class="kn">import</span> <span class="nn">datetime</span>
|
|
<span class="kn">from</span> <span class="nn">anything</span> <span class="kn">import</span> <span class="n">Anything</span>
|
|
|
|
<span class="kn">from</span> <span class="nn">parameterized</span> <span class="kn">import</span> <span class="n">parameterized</span>
|
|
<span class="kn">from</span> <span class="nn">django.conf</span> <span class="kn">import</span> <span class="n">settings</span>
|
|
<span class="kn">from</span> <span class="nn">twisted.internet</span> <span class="kn">import</span> <span class="n">task</span>
|
|
<span class="kn">from</span> <span class="nn">unittest.mock</span> <span class="kn">import</span> <span class="n">patch</span><span class="p">,</span> <span class="n">Mock</span><span class="p">,</span> <span class="n">MagicMock</span>
|
|
|
|
<span class="kn">from</span> <span class="nn">evennia</span> <span class="kn">import</span> <span class="n">DefaultRoom</span><span class="p">,</span> <span class="n">DefaultExit</span><span class="p">,</span> <span class="n">ObjectDB</span>
|
|
<span class="kn">from</span> <span class="nn">evennia.commands.default.cmdset_character</span> <span class="kn">import</span> <span class="n">CharacterCmdSet</span>
|
|
<span class="kn">from</span> <span class="nn">evennia.utils.test_resources</span> <span class="kn">import</span> <span class="n">EvenniaTest</span>
|
|
<span class="kn">from</span> <span class="nn">evennia.commands.default</span> <span class="kn">import</span> <span class="p">(</span>
|
|
<span class="n">help</span> <span class="k">as</span> <span class="n">help_module</span><span class="p">,</span>
|
|
<span class="n">general</span><span class="p">,</span>
|
|
<span class="n">system</span><span class="p">,</span>
|
|
<span class="n">admin</span><span class="p">,</span>
|
|
<span class="n">account</span><span class="p">,</span>
|
|
<span class="n">building</span><span class="p">,</span>
|
|
<span class="n">batchprocess</span><span class="p">,</span>
|
|
<span class="n">comms</span><span class="p">,</span>
|
|
<span class="n">unloggedin</span><span class="p">,</span>
|
|
<span class="n">syscommands</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="kn">from</span> <span class="nn">evennia.commands.default.muxcommand</span> <span class="kn">import</span> <span class="n">MuxCommand</span>
|
|
<span class="kn">from</span> <span class="nn">evennia.commands.command</span> <span class="kn">import</span> <span class="n">Command</span><span class="p">,</span> <span class="n">InterruptCommand</span>
|
|
<span class="kn">from</span> <span class="nn">evennia.commands</span> <span class="kn">import</span> <span class="n">cmdparser</span>
|
|
<span class="kn">from</span> <span class="nn">evennia.commands.cmdset</span> <span class="kn">import</span> <span class="n">CmdSet</span>
|
|
<span class="kn">from</span> <span class="nn">evennia.utils</span> <span class="kn">import</span> <span class="n">ansi</span><span class="p">,</span> <span class="n">utils</span><span class="p">,</span> <span class="n">gametime</span>
|
|
<span class="kn">from</span> <span class="nn">evennia.server.sessionhandler</span> <span class="kn">import</span> <span class="n">SESSIONS</span>
|
|
<span class="kn">from</span> <span class="nn">evennia</span> <span class="kn">import</span> <span class="n">search_object</span>
|
|
<span class="kn">from</span> <span class="nn">evennia</span> <span class="kn">import</span> <span class="n">DefaultObject</span><span class="p">,</span> <span class="n">DefaultCharacter</span>
|
|
<span class="kn">from</span> <span class="nn">evennia.prototypes</span> <span class="kn">import</span> <span class="n">prototypes</span> <span class="k">as</span> <span class="n">protlib</span>
|
|
|
|
|
|
<span class="c1"># set up signal here since we are not starting the server</span>
|
|
|
|
<span class="n">_RE_STRIP_EVMENU</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"^\+|-+\+|\+-+|--+|\|(?:\s|$)"</span><span class="p">,</span> <span class="n">re</span><span class="o">.</span><span class="n">MULTILINE</span><span class="p">)</span>
|
|
|
|
|
|
<span class="c1"># ------------------------------------------------------------</span>
|
|
<span class="c1"># Command testing</span>
|
|
<span class="c1"># ------------------------------------------------------------</span>
|
|
|
|
<div class="viewcode-block" id="CommandTest"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.CommandTest">[docs]</a><span class="nd">@patch</span><span class="p">(</span><span class="s2">"evennia.server.portal.portal.LoopingCall"</span><span class="p">,</span> <span class="n">new</span><span class="o">=</span><span class="n">MagicMock</span><span class="p">())</span>
|
|
<span class="k">class</span> <span class="nc">CommandTest</span><span class="p">(</span><span class="n">EvenniaTest</span><span class="p">):</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> Tests a Command by running it and comparing what messages it sends with</span>
|
|
<span class="sd"> expected values. This tests without actually spinning up the cmdhandler</span>
|
|
<span class="sd"> for every test, which is more controlled.</span>
|
|
|
|
<span class="sd"> Example:</span>
|
|
<span class="sd"> ::</span>
|
|
|
|
<span class="sd"> from commands.echo import CmdEcho</span>
|
|
|
|
<span class="sd"> class MyCommandTest(CommandTest):</span>
|
|
|
|
<span class="sd"> def test_echo(self):</span>
|
|
<span class="sd"> '''</span>
|
|
<span class="sd"> Test that the echo command really returns</span>
|
|
<span class="sd"> what you pass into it.</span>
|
|
<span class="sd"> '''</span>
|
|
<span class="sd"> self.call(MyCommand(), "hello world!",</span>
|
|
<span class="sd"> "You hear your echo: 'Hello world!'")</span>
|
|
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="c1"># formatting for .call's error message</span>
|
|
<span class="n">_ERROR_FORMAT</span> <span class="o">=</span> <span class="s2">"""</span>
|
|
<span class="s2">=========================== Wanted message ===================================</span>
|
|
<span class="si">{expected_msg}</span><span class="s2"></span>
|
|
<span class="s2">=========================== Returned message =================================</span>
|
|
<span class="si">{returned_msg}</span><span class="s2"></span>
|
|
<span class="s2">==============================================================================</span>
|
|
<span class="s2">"""</span><span class="o">.</span><span class="n">rstrip</span><span class="p">()</span>
|
|
|
|
<div class="viewcode-block" id="CommandTest.call"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.CommandTest.call">[docs]</a> <span class="k">def</span> <span class="nf">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="p">,</span>
|
|
<span class="n">cmdobj</span><span class="p">,</span>
|
|
<span class="n">input_args</span><span class="p">,</span>
|
|
<span class="n">msg</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
|
<span class="n">cmdset</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
|
<span class="n">noansi</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
|
<span class="n">caller</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
|
<span class="n">receiver</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
|
<span class="n">cmdstring</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
|
<span class="n">obj</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
|
<span class="n">inputs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
|
<span class="n">raw_string</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
|
<span class="p">):</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> Test a command by assigning all the needed properties to a cmdobj and</span>
|
|
<span class="sd"> running the sequence. The resulting `.msg` calls will be mocked and</span>
|
|
<span class="sd"> the text= calls to them compared to a expected output.</span>
|
|
|
|
<span class="sd"> Args:</span>
|
|
<span class="sd"> cmdobj (Command): The command object to use.</span>
|
|
<span class="sd"> input_args (str): This should be the full input the Command should</span>
|
|
<span class="sd"> see, such as 'look here'. This will become `.args` for the Command</span>
|
|
<span class="sd"> instance to parse.</span>
|
|
<span class="sd"> msg (str or dict, optional): This is the expected return value(s)</span>
|
|
<span class="sd"> returned through `caller.msg(text=...)` calls in the command. If a string, the</span>
|
|
<span class="sd"> receiver is controlled with the `receiver` kwarg (defaults to `caller`).</span>
|
|
<span class="sd"> If this is a `dict`, it is a mapping</span>
|
|
<span class="sd"> `{receiver1: "expected1", receiver2: "expected2",...}` and `receiver` is</span>
|
|
<span class="sd"> ignored. The message(s) are compared with the actual messages returned</span>
|
|
<span class="sd"> to the receiver(s) as the Command runs. Each check uses `.startswith`,</span>
|
|
<span class="sd"> so you can choose to only include the first part of the</span>
|
|
<span class="sd"> returned message if that's enough to verify a correct result. EvMenu</span>
|
|
<span class="sd"> decorations (like borders) are stripped and should not be included. This</span>
|
|
<span class="sd"> should also not include color tags unless `noansi=False`.</span>
|
|
<span class="sd"> If the command returns texts in multiple separate `.msg`-</span>
|
|
<span class="sd"> calls to a receiver, separate these with `|` if `noansi=True`</span>
|
|
<span class="sd"> (default) and `||` if `noansi=False`. If no `msg` is given (`None`),</span>
|
|
<span class="sd"> then no automatic comparison will be done.</span>
|
|
<span class="sd"> cmdset (str, optional): If given, make `.cmdset` available on the Command</span>
|
|
<span class="sd"> instance as it runs. While `.cmdset` is normally available on the</span>
|
|
<span class="sd"> Command instance by default, this is usually only used by</span>
|
|
<span class="sd"> commands that explicitly operates/displays cmdsets, like</span>
|
|
<span class="sd"> `examine`.</span>
|
|
<span class="sd"> noansi (str, optional): By default the color tags of the `msg` is</span>
|
|
<span class="sd"> ignored, this makes them significant. If unset, `msg` must contain</span>
|
|
<span class="sd"> the same color tags as the actual return message.</span>
|
|
<span class="sd"> caller (Object or Account, optional): By default `self.char1` is used as the</span>
|
|
<span class="sd"> command-caller (the `.caller` property on the Command). This allows to</span>
|
|
<span class="sd"> execute with another caller, most commonly an Account.</span>
|
|
<span class="sd"> receiver (Object or Account, optional): This is the object to receive the</span>
|
|
<span class="sd"> return messages we want to test. By default this is the same as `caller`</span>
|
|
<span class="sd"> (which in turn defaults to is `self.char1`). Note that if `msg` is</span>
|
|
<span class="sd"> a `dict`, this is ignored since the receiver is already specified there.</span>
|
|
<span class="sd"> cmdstring (str, optional): Normally this is the Command's `key`.</span>
|
|
<span class="sd"> This allows for tweaking the `.cmdname` property of the</span>
|
|
<span class="sd"> Command`. This isb used for commands with multiple aliases,</span>
|
|
<span class="sd"> where the command explicitly checs which alias was used to</span>
|
|
<span class="sd"> determine its functionality.</span>
|
|
<span class="sd"> obj (str, optional): This sets the `.obj` property of the Command - the</span>
|
|
<span class="sd"> object on which the Command 'sits'. By default this is the same as `caller`.</span>
|
|
<span class="sd"> This can be used for testing on-object Command interactions.</span>
|
|
<span class="sd"> inputs (list, optional): A list of strings to pass to functions that pause to</span>
|
|
<span class="sd"> take input from the user (normally using `@interactive` and</span>
|
|
<span class="sd"> `ret = yield(question)` or `evmenu.get_input`). Each element of the</span>
|
|
<span class="sd"> list will be passed into the command as if the user wrote that at the prompt.</span>
|
|
<span class="sd"> raw_string (str, optional): Normally the `.raw_string` property is set as</span>
|
|
<span class="sd"> a combination of your `key/cmdname` and `input_args`. This allows</span>
|
|
<span class="sd"> direct control of what this is, for example for testing edge cases</span>
|
|
<span class="sd"> or malformed inputs.</span>
|
|
|
|
<span class="sd"> Returns:</span>
|
|
<span class="sd"> str or dict: The message sent to `receiver`, or a dict of</span>
|
|
<span class="sd"> `{receiver: "msg", ...}` if multiple are given. This is usually</span>
|
|
<span class="sd"> only used with `msg=None` to do the validation externally.</span>
|
|
|
|
<span class="sd"> Raises:</span>
|
|
<span class="sd"> AssertionError: If the returns of `.msg` calls (tested with `.startswith`) does not</span>
|
|
<span class="sd"> match `expected_input`.</span>
|
|
|
|
<span class="sd"> Notes:</span>
|
|
<span class="sd"> As part of the tests, all methods of the Command will be called in</span>
|
|
<span class="sd"> the proper order:</span>
|
|
|
|
<span class="sd"> - cmdobj.at_pre_cmd()</span>
|
|
<span class="sd"> - cmdobj.parse()</span>
|
|
<span class="sd"> - cmdobj.func()</span>
|
|
<span class="sd"> - cmdobj.at_post_cmd()</span>
|
|
|
|
<span class="sd"> """</span>
|
|
<span class="c1"># The `self.char1` is created in the `EvenniaTest` base along with</span>
|
|
<span class="c1"># other helper objects like self.room and self.obj</span>
|
|
<span class="n">caller</span> <span class="o">=</span> <span class="n">caller</span> <span class="k">if</span> <span class="n">caller</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span>
|
|
<span class="n">cmdobj</span><span class="o">.</span><span class="n">caller</span> <span class="o">=</span> <span class="n">caller</span>
|
|
<span class="n">cmdobj</span><span class="o">.</span><span class="n">cmdname</span> <span class="o">=</span> <span class="n">cmdstring</span> <span class="k">if</span> <span class="n">cmdstring</span> <span class="k">else</span> <span class="n">cmdobj</span><span class="o">.</span><span class="n">key</span>
|
|
<span class="n">cmdobj</span><span class="o">.</span><span class="n">raw_cmdname</span> <span class="o">=</span> <span class="n">cmdobj</span><span class="o">.</span><span class="n">cmdname</span>
|
|
<span class="n">cmdobj</span><span class="o">.</span><span class="n">cmdstring</span> <span class="o">=</span> <span class="n">cmdobj</span><span class="o">.</span><span class="n">cmdname</span> <span class="c1"># deprecated</span>
|
|
<span class="n">cmdobj</span><span class="o">.</span><span class="n">args</span> <span class="o">=</span> <span class="n">input_args</span>
|
|
<span class="n">cmdobj</span><span class="o">.</span><span class="n">cmdset</span> <span class="o">=</span> <span class="n">cmdset</span>
|
|
<span class="n">cmdobj</span><span class="o">.</span><span class="n">session</span> <span class="o">=</span> <span class="n">SESSIONS</span><span class="o">.</span><span class="n">session_from_sessid</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
|
<span class="n">cmdobj</span><span class="o">.</span><span class="n">account</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">account</span>
|
|
<span class="n">cmdobj</span><span class="o">.</span><span class="n">raw_string</span> <span class="o">=</span> <span class="n">raw_string</span> <span class="k">if</span> <span class="n">raw_string</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">cmdobj</span><span class="o">.</span><span class="n">key</span> <span class="o">+</span> <span class="s2">" "</span> <span class="o">+</span> <span class="n">input_args</span>
|
|
<span class="n">cmdobj</span><span class="o">.</span><span class="n">obj</span> <span class="o">=</span> <span class="n">obj</span> <span class="ow">or</span> <span class="p">(</span><span class="n">caller</span> <span class="k">if</span> <span class="n">caller</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="p">)</span>
|
|
<span class="n">inputs</span> <span class="o">=</span> <span class="n">inputs</span> <span class="ow">or</span> <span class="p">[]</span>
|
|
|
|
<span class="c1"># set up receivers</span>
|
|
<span class="n">receiver_mapping</span> <span class="o">=</span> <span class="p">{}</span>
|
|
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
|
|
<span class="c1"># a mapping {receiver: msg, ...}</span>
|
|
<span class="n">receiver_mapping</span> <span class="o">=</span> <span class="p">{</span><span class="n">recv</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">if</span> <span class="n">msg</span> <span class="k">else</span> <span class="kc">None</span>
|
|
<span class="k">for</span> <span class="n">recv</span><span class="p">,</span> <span class="n">msg</span> <span class="ow">in</span> <span class="n">msg</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="c1"># a single expected string and thus a single receiver (defaults to caller)</span>
|
|
<span class="n">receiver</span> <span class="o">=</span> <span class="n">receiver</span> <span class="k">if</span> <span class="n">receiver</span> <span class="k">else</span> <span class="n">caller</span>
|
|
<span class="n">receiver_mapping</span><span class="p">[</span><span class="n">receiver</span><span class="p">]</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">if</span> <span class="n">msg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="kc">None</span>
|
|
|
|
<span class="n">unmocked_msg_methods</span> <span class="o">=</span> <span class="p">{}</span>
|
|
<span class="k">for</span> <span class="n">receiver</span> <span class="ow">in</span> <span class="n">receiver_mapping</span><span class="p">:</span>
|
|
<span class="c1"># save the old .msg method so we can get it back</span>
|
|
<span class="c1"># cleanly after the test</span>
|
|
<span class="n">unmocked_msg_methods</span><span class="p">[</span><span class="n">receiver</span><span class="p">]</span> <span class="o">=</span> <span class="n">receiver</span><span class="o">.</span><span class="n">msg</span>
|
|
<span class="c1"># replace normal `.msg` with a mock</span>
|
|
<span class="n">receiver</span><span class="o">.</span><span class="n">msg</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
|
|
<span class="c1"># Run the methods of the Command. This mimics what happens in the</span>
|
|
<span class="c1"># cmdhandler. This will have the mocked .msg be called as part of the</span>
|
|
<span class="c1"># execution. Mocks remembers what was sent to them so we will be able</span>
|
|
<span class="c1"># to retrieve what was sent later.</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="n">cmdobj</span><span class="o">.</span><span class="n">at_pre_cmd</span><span class="p">():</span>
|
|
<span class="k">return</span>
|
|
<span class="n">cmdobj</span><span class="o">.</span><span class="n">parse</span><span class="p">()</span>
|
|
<span class="n">ret</span> <span class="o">=</span> <span class="n">cmdobj</span><span class="o">.</span><span class="n">func</span><span class="p">()</span>
|
|
|
|
<span class="c1"># handle func's with yield in them (making them generators)</span>
|
|
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span> <span class="n">types</span><span class="o">.</span><span class="n">GeneratorType</span><span class="p">):</span>
|
|
<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="n">inp</span> <span class="o">=</span> <span class="n">inputs</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> <span class="k">if</span> <span class="n">inputs</span> <span class="k">else</span> <span class="kc">None</span>
|
|
<span class="k">if</span> <span class="n">inp</span><span class="p">:</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="c1"># this mimics a user's reply to a prompt</span>
|
|
<span class="n">ret</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="n">inp</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
|
|
<span class="nb">next</span><span class="p">(</span><span class="n">ret</span><span class="p">)</span>
|
|
<span class="n">ret</span> <span class="o">=</span> <span class="n">ret</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="n">inp</span><span class="p">)</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="c1"># non-input yield, like yield(10). We don't pause</span>
|
|
<span class="c1"># but fire it immediately.</span>
|
|
<span class="nb">next</span><span class="p">(</span><span class="n">ret</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
|
|
<span class="k">break</span>
|
|
|
|
<span class="n">cmdobj</span><span class="o">.</span><span class="n">at_post_cmd</span><span class="p">()</span>
|
|
<span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
|
|
<span class="k">pass</span>
|
|
<span class="k">except</span> <span class="n">InterruptCommand</span><span class="p">:</span>
|
|
<span class="k">pass</span>
|
|
|
|
<span class="k">for</span> <span class="n">inp</span> <span class="ow">in</span> <span class="n">inputs</span><span class="p">:</span>
|
|
<span class="c1"># if there are any inputs left, we may have a non-generator</span>
|
|
<span class="c1"># input to handle (get_input/ask_yes_no that uses a separate</span>
|
|
<span class="c1"># cmdset rather than a yield</span>
|
|
<span class="n">caller</span><span class="o">.</span><span class="n">execute_cmd</span><span class="p">(</span><span class="n">inp</span><span class="p">)</span>
|
|
|
|
<span class="c1"># At this point the mocked .msg methods on each receiver will have</span>
|
|
<span class="c1"># stored all calls made to them (that's a basic function of the Mock</span>
|
|
<span class="c1"># class). We will not extract them and compare to what we expected to</span>
|
|
<span class="c1"># go to each receiver.</span>
|
|
|
|
<span class="n">returned_msgs</span> <span class="o">=</span> <span class="p">{}</span>
|
|
<span class="k">for</span> <span class="n">receiver</span><span class="p">,</span> <span class="n">expected_msg</span> <span class="ow">in</span> <span class="n">receiver_mapping</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
|
<span class="c1"># get the stored messages from the Mock with Mock.mock_calls.</span>
|
|
<span class="n">stored_msg</span> <span class="o">=</span> <span class="p">[</span>
|
|
<span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">if</span> <span class="n">args</span> <span class="ow">and</span> <span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">else</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"text"</span><span class="p">,</span> <span class="n">utils</span><span class="o">.</span><span class="n">to_str</span><span class="p">(</span><span class="n">kwargs</span><span class="p">))</span>
|
|
<span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="n">kwargs</span> <span class="ow">in</span> <span class="n">receiver</span><span class="o">.</span><span class="n">msg</span><span class="o">.</span><span class="n">mock_calls</span>
|
|
<span class="p">]</span>
|
|
<span class="c1"># we can return this now, we are done using the mock</span>
|
|
<span class="n">receiver</span><span class="o">.</span><span class="n">msg</span> <span class="o">=</span> <span class="n">unmocked_msg_methods</span><span class="p">[</span><span class="n">receiver</span><span class="p">]</span>
|
|
|
|
<span class="c1"># Get the first element of a tuple if msg received a tuple instead of a string</span>
|
|
<span class="n">stored_msg</span> <span class="o">=</span> <span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">smsg</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
|
|
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">smsg</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)</span> <span class="k">else</span> <span class="nb">str</span><span class="p">(</span><span class="n">smsg</span><span class="p">)</span> <span class="k">for</span> <span class="n">smsg</span> <span class="ow">in</span> <span class="n">stored_msg</span><span class="p">]</span>
|
|
<span class="k">if</span> <span class="n">expected_msg</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
<span class="c1"># no expected_msg; just build the returned_msgs dict</span>
|
|
|
|
<span class="n">returned_msg</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span> <span class="k">for</span> <span class="n">msg</span> <span class="ow">in</span> <span class="n">stored_msg</span><span class="p">)</span>
|
|
<span class="n">returned_msgs</span><span class="p">[</span><span class="n">receiver</span><span class="p">]</span> <span class="o">=</span> <span class="n">ansi</span><span class="o">.</span><span class="n">parse_ansi</span><span class="p">(</span><span class="n">returned_msg</span><span class="p">,</span> <span class="n">strip_ansi</span><span class="o">=</span><span class="n">noansi</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="c1"># compare messages to expected</span>
|
|
|
|
<span class="c1"># set our separator for returned messages based on parsing ansi or not</span>
|
|
<span class="n">msg_sep</span> <span class="o">=</span> <span class="s2">"|"</span> <span class="k">if</span> <span class="n">noansi</span> <span class="k">else</span> <span class="s2">"||"</span>
|
|
|
|
<span class="c1"># We remove Evmenu decorations since that just makes it harder</span>
|
|
<span class="c1"># to write the comparison string. We also strip ansi before this</span>
|
|
<span class="c1"># comparison since otherwise it would mess with the regex.</span>
|
|
<span class="n">returned_msg</span> <span class="o">=</span> <span class="n">msg_sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
|
|
<span class="n">_RE_STRIP_EVMENU</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span>
|
|
<span class="s2">""</span><span class="p">,</span> <span class="n">ansi</span><span class="o">.</span><span class="n">parse_ansi</span><span class="p">(</span><span class="n">mess</span><span class="p">,</span> <span class="n">strip_ansi</span><span class="o">=</span><span class="n">noansi</span><span class="p">))</span>
|
|
<span class="k">for</span> <span class="n">mess</span> <span class="ow">in</span> <span class="n">stored_msg</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
|
|
|
|
<span class="c1"># this is the actual test</span>
|
|
<span class="k">if</span> <span class="n">expected_msg</span> <span class="o">==</span> <span class="s2">""</span> <span class="ow">and</span> <span class="n">returned_msg</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">returned_msg</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">expected_msg</span><span class="p">):</span>
|
|
<span class="c1"># failed the test</span>
|
|
<span class="k">raise</span> <span class="ne">AssertionError</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">_ERROR_FORMAT</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
|
|
<span class="n">expected_msg</span><span class="o">=</span><span class="n">expected_msg</span><span class="p">,</span> <span class="n">returned_msg</span><span class="o">=</span><span class="n">returned_msg</span><span class="p">)</span>
|
|
<span class="p">)</span>
|
|
<span class="c1"># passed!</span>
|
|
<span class="n">returned_msgs</span><span class="p">[</span><span class="n">receiver</span><span class="p">]</span> <span class="o">=</span> <span class="n">returned_msg</span>
|
|
|
|
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">returned_msgs</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="n">returned_msgs</span><span class="o">.</span><span class="n">values</span><span class="p">())[</span><span class="mi">0</span><span class="p">]</span>
|
|
<span class="k">return</span> <span class="n">returned_msgs</span></div></div>
|
|
|
|
|
|
<span class="c1"># ------------------------------------------------------------</span>
|
|
<span class="c1"># Individual module Tests</span>
|
|
<span class="c1"># ------------------------------------------------------------</span>
|
|
|
|
|
|
<div class="viewcode-block" id="TestGeneral"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestGeneral">[docs]</a><span class="k">class</span> <span class="nc">TestGeneral</span><span class="p">(</span><span class="n">CommandTest</span><span class="p">):</span>
|
|
<div class="viewcode-block" id="TestGeneral.test_look"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestGeneral.test_look">[docs]</a> <span class="k">def</span> <span class="nf">test_look</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">rid</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="o">.</span><span class="n">id</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">general</span><span class="o">.</span><span class="n">CmdLook</span><span class="p">(),</span> <span class="s2">"here"</span><span class="p">,</span> <span class="s2">"Room(#</span><span class="si">{}</span><span class="s2">)</span><span class="se">\n</span><span class="s2">room_desc"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">rid</span><span class="p">))</span></div>
|
|
|
|
<div class="viewcode-block" id="TestGeneral.test_home"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestGeneral.test_home">[docs]</a> <span class="k">def</span> <span class="nf">test_home</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">general</span><span class="o">.</span><span class="n">CmdHome</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"You are already home"</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestGeneral.test_inventory"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestGeneral.test_inventory">[docs]</a> <span class="k">def</span> <span class="nf">test_inventory</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">general</span><span class="o">.</span><span class="n">CmdInventory</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"You are not carrying anything."</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestGeneral.test_pose"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestGeneral.test_pose">[docs]</a> <span class="k">def</span> <span class="nf">test_pose</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">general</span><span class="o">.</span><span class="n">CmdPose</span><span class="p">(),</span> <span class="s2">"looks around"</span><span class="p">,</span> <span class="s2">"Char looks around"</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestGeneral.test_nick"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestGeneral.test_nick">[docs]</a> <span class="k">def</span> <span class="nf">test_nick</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">general</span><span class="o">.</span><span class="n">CmdNick</span><span class="p">(),</span>
|
|
<span class="s2">"testalias = testaliasedstring1"</span><span class="p">,</span>
|
|
<span class="s2">"Inputline-nick 'testalias' mapped to 'testaliasedstring1'."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">general</span><span class="o">.</span><span class="n">CmdNick</span><span class="p">(),</span>
|
|
<span class="s2">"/account testalias = testaliasedstring2"</span><span class="p">,</span>
|
|
<span class="s2">"Account-nick 'testalias' mapped to 'testaliasedstring2'."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">general</span><span class="o">.</span><span class="n">CmdNick</span><span class="p">(),</span>
|
|
<span class="s2">"/object testalias = testaliasedstring3"</span><span class="p">,</span>
|
|
<span class="s2">"Object-nick 'testalias' mapped to 'testaliasedstring3'."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="s2">"testaliasedstring1"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">nicks</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"testalias"</span><span class="p">))</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span>
|
|
<span class="s2">"testaliasedstring2"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">nicks</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"testalias"</span><span class="p">,</span> <span class="n">category</span><span class="o">=</span><span class="s2">"account"</span><span class="p">)</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="kc">None</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">account</span><span class="o">.</span><span class="n">nicks</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"testalias"</span><span class="p">,</span> <span class="n">category</span><span class="o">=</span><span class="s2">"account"</span><span class="p">))</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="s2">"testaliasedstring3"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">nicks</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"testalias"</span><span class="p">,</span> <span class="n">category</span><span class="o">=</span><span class="s2">"object"</span><span class="p">))</span></div>
|
|
|
|
<div class="viewcode-block" id="TestGeneral.test_get_and_drop"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestGeneral.test_get_and_drop">[docs]</a> <span class="k">def</span> <span class="nf">test_get_and_drop</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">general</span><span class="o">.</span><span class="n">CmdGet</span><span class="p">(),</span> <span class="s2">"Obj"</span><span class="p">,</span> <span class="s2">"You pick up Obj."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">general</span><span class="o">.</span><span class="n">CmdDrop</span><span class="p">(),</span> <span class="s2">"Obj"</span><span class="p">,</span> <span class="s2">"You drop Obj."</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestGeneral.test_give"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestGeneral.test_give">[docs]</a> <span class="k">def</span> <span class="nf">test_give</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">general</span><span class="o">.</span><span class="n">CmdGive</span><span class="p">(),</span> <span class="s2">"Obj to Char2"</span><span class="p">,</span> <span class="s2">"You aren't carrying Obj."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">general</span><span class="o">.</span><span class="n">CmdGive</span><span class="p">(),</span> <span class="s2">"Obj = Char2"</span><span class="p">,</span> <span class="s2">"You aren't carrying Obj."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">general</span><span class="o">.</span><span class="n">CmdGet</span><span class="p">(),</span> <span class="s2">"Obj"</span><span class="p">,</span> <span class="s2">"You pick up Obj."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">general</span><span class="o">.</span><span class="n">CmdGive</span><span class="p">(),</span> <span class="s2">"Obj to Char2"</span><span class="p">,</span> <span class="s2">"You give"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">general</span><span class="o">.</span><span class="n">CmdGive</span><span class="p">(),</span> <span class="s2">"Obj = Char"</span><span class="p">,</span> <span class="s2">"You give"</span><span class="p">,</span> <span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">char2</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestGeneral.test_mux_command"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestGeneral.test_mux_command">[docs]</a> <span class="k">def</span> <span class="nf">test_mux_command</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">class</span> <span class="nc">CmdTest</span><span class="p">(</span><span class="n">MuxCommand</span><span class="p">):</span>
|
|
<span class="n">key</span> <span class="o">=</span> <span class="s2">"test"</span>
|
|
<span class="n">switch_options</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"test"</span><span class="p">,</span> <span class="s2">"testswitch"</span><span class="p">,</span> <span class="s2">"testswitch2"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"Switches matched: </span><span class="si">{}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">switches</span><span class="p">))</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">CmdTest</span><span class="p">(),</span>
|
|
<span class="s2">"/test/testswitch/testswitch2"</span><span class="p">,</span>
|
|
<span class="s2">"Switches matched: ['test', 'testswitch', 'testswitch2']"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">CmdTest</span><span class="p">(),</span> <span class="s2">"/test"</span><span class="p">,</span> <span class="s2">"Switches matched: ['test']"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">CmdTest</span><span class="p">(),</span> <span class="s2">"/test/testswitch"</span><span class="p">,</span> <span class="s2">"Switches matched: ['test', 'testswitch']"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">CmdTest</span><span class="p">(),</span> <span class="s2">"/testswitch/testswitch2"</span><span class="p">,</span> <span class="s2">"Switches matched: ['testswitch', 'testswitch2']"</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">CmdTest</span><span class="p">(),</span> <span class="s2">"/testswitch"</span><span class="p">,</span> <span class="s2">"Switches matched: ['testswitch']"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">CmdTest</span><span class="p">(),</span> <span class="s2">"/testswitch2"</span><span class="p">,</span> <span class="s2">"Switches matched: ['testswitch2']"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">CmdTest</span><span class="p">(),</span>
|
|
<span class="s2">"/t"</span><span class="p">,</span>
|
|
<span class="s2">"test: Ambiguous switch supplied: "</span>
|
|
<span class="s2">"Did you mean /test or /testswitch or /testswitch2?|Switches matched: []"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">CmdTest</span><span class="p">(),</span>
|
|
<span class="s2">"/tests"</span><span class="p">,</span>
|
|
<span class="s2">"test: Ambiguous switch supplied: "</span>
|
|
<span class="s2">"Did you mean /testswitch or /testswitch2?|Switches matched: []"</span><span class="p">,</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestGeneral.test_say"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestGeneral.test_say">[docs]</a> <span class="k">def</span> <span class="nf">test_say</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">general</span><span class="o">.</span><span class="n">CmdSay</span><span class="p">(),</span> <span class="s2">"Testing"</span><span class="p">,</span> <span class="s1">'You say, "Testing"'</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestGeneral.test_whisper"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestGeneral.test_whisper">[docs]</a> <span class="k">def</span> <span class="nf">test_whisper</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">general</span><span class="o">.</span><span class="n">CmdWhisper</span><span class="p">(),</span>
|
|
<span class="s2">"Obj = Testing"</span><span class="p">,</span>
|
|
<span class="s1">'You whisper to Obj, "Testing"'</span><span class="p">,</span>
|
|
<span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">char2</span><span class="p">,</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestGeneral.test_access"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestGeneral.test_access">[docs]</a> <span class="k">def</span> <span class="nf">test_access</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">general</span><span class="o">.</span><span class="n">CmdAccess</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Permission Hierarchy (climbing):"</span><span class="p">)</span></div></div>
|
|
|
|
|
|
<div class="viewcode-block" id="TestHelp"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestHelp">[docs]</a><span class="k">class</span> <span class="nc">TestHelp</span><span class="p">(</span><span class="n">CommandTest</span><span class="p">):</span>
|
|
|
|
<span class="n">maxDiff</span> <span class="o">=</span> <span class="kc">None</span>
|
|
|
|
<div class="viewcode-block" id="TestHelp.setUp"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestHelp.setUp">[docs]</a> <span class="k">def</span> <span class="nf">setUp</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">setUp</span><span class="p">()</span>
|
|
<span class="c1"># we need to set up a logger here since lunr takes over the logger otherwise</span>
|
|
<span class="kn">import</span> <span class="nn">logging</span>
|
|
|
|
<span class="n">logging</span><span class="o">.</span><span class="n">basicConfig</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="n">logging</span><span class="o">.</span><span class="n">ERROR</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestHelp.tearDown"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestHelp.tearDown">[docs]</a> <span class="k">def</span> <span class="nf">tearDown</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">tearDown</span><span class="p">()</span>
|
|
<span class="kn">import</span> <span class="nn">logging</span>
|
|
|
|
<span class="n">logging</span><span class="o">.</span><span class="n">disable</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="n">logging</span><span class="o">.</span><span class="n">ERROR</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestHelp.test_help"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestHelp.test_help">[docs]</a> <span class="k">def</span> <span class="nf">test_help</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">help_module</span><span class="o">.</span><span class="n">CmdHelp</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Commands"</span><span class="p">,</span> <span class="n">cmdset</span><span class="o">=</span><span class="n">CharacterCmdSet</span><span class="p">())</span></div>
|
|
|
|
<div class="viewcode-block" id="TestHelp.test_set_help"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestHelp.test_set_help">[docs]</a> <span class="k">def</span> <span class="nf">test_set_help</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">help_module</span><span class="o">.</span><span class="n">CmdSetHelp</span><span class="p">(),</span>
|
|
<span class="s2">"testhelp, General = This is a test"</span><span class="p">,</span>
|
|
<span class="s2">"Topic 'testhelp' was successfully created."</span><span class="p">,</span>
|
|
<span class="n">cmdset</span><span class="o">=</span><span class="n">CharacterCmdSet</span><span class="p">()</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">help_module</span><span class="o">.</span><span class="n">CmdHelp</span><span class="p">(),</span> <span class="s2">"testhelp"</span><span class="p">,</span> <span class="s2">"Help for testhelp"</span><span class="p">,</span> <span class="n">cmdset</span><span class="o">=</span><span class="n">CharacterCmdSet</span><span class="p">())</span></div>
|
|
|
|
<span class="nd">@parameterized</span><span class="o">.</span><span class="n">expand</span><span class="p">([</span>
|
|
<span class="p">(</span><span class="s2">"test"</span><span class="p">,</span> <span class="c1"># main help entry</span>
|
|
<span class="s2">"Help for test</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"Main help text</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"Subtopics:</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="s2">" test/creating extra stuff"</span>
|
|
<span class="s2">" test/something else"</span>
|
|
<span class="s2">" test/more"</span>
|
|
<span class="p">),</span>
|
|
<span class="p">(</span><span class="s2">"test/creating extra stuff"</span><span class="p">,</span> <span class="c1"># subtopic, full match</span>
|
|
<span class="s2">"Help for test/creating extra stuff</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"Help on creating extra stuff.</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"Subtopics:</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="s2">" test/creating extra stuff/subsubtopic</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="p">),</span>
|
|
<span class="p">(</span><span class="s2">"test/creating"</span><span class="p">,</span> <span class="c1"># startswith-match</span>
|
|
<span class="s2">"Help for test/creating extra stuff</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"Help on creating extra stuff.</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"Subtopics:</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="s2">" test/creating extra stuff/subsubtopic</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="p">),</span>
|
|
<span class="p">(</span><span class="s2">"test/extra"</span><span class="p">,</span> <span class="c1"># partial match</span>
|
|
<span class="s2">"Help for test/creating extra stuff</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"Help on creating extra stuff.</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"Subtopics:</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="s2">" test/creating extra stuff/subsubtopic</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="p">),</span>
|
|
<span class="p">(</span><span class="s2">"test/extra/subsubtopic"</span><span class="p">,</span> <span class="c1"># partial subsub-match</span>
|
|
<span class="s2">"Help for test/creating extra stuff/subsubtopic</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"A subsubtopic text"</span>
|
|
<span class="p">),</span>
|
|
<span class="p">(</span><span class="s2">"test/creating extra/subsub"</span><span class="p">,</span> <span class="c1"># partial subsub-match</span>
|
|
<span class="s2">"Help for test/creating extra stuff/subsubtopic</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"A subsubtopic text"</span>
|
|
<span class="p">),</span>
|
|
<span class="p">(</span><span class="s2">"test/Something else"</span><span class="p">,</span> <span class="c1"># case</span>
|
|
<span class="s2">"Help for test/something else</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"Something else"</span>
|
|
<span class="p">),</span>
|
|
<span class="p">(</span><span class="s2">"test/More"</span><span class="p">,</span> <span class="c1"># case</span>
|
|
<span class="s2">"Help for test/more</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"Another text</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"Subtopics:</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="s2">" test/more/second-more"</span>
|
|
<span class="p">),</span>
|
|
<span class="p">(</span><span class="s2">"test/More/Second-more"</span><span class="p">,</span>
|
|
<span class="s2">"Help for test/more/second-more</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"The Second More text.</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"Subtopics:</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="s2">" test/more/second-more/more again"</span>
|
|
<span class="s2">" test/more/second-more/third more"</span>
|
|
<span class="p">),</span>
|
|
<span class="p">(</span><span class="s2">"test/More/-more"</span><span class="p">,</span> <span class="c1"># partial match</span>
|
|
<span class="s2">"Help for test/more/second-more</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"The Second More text.</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"Subtopics:</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="s2">" test/more/second-more/more again"</span>
|
|
<span class="s2">" test/more/second-more/third more"</span>
|
|
<span class="p">),</span>
|
|
<span class="p">(</span><span class="s2">"test/more/second/more again"</span><span class="p">,</span>
|
|
<span class="s2">"Help for test/more/second-more/more again</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"Even more text.</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="p">),</span>
|
|
<span class="p">(</span><span class="s2">"test/more/second/third"</span><span class="p">,</span>
|
|
<span class="s2">"Help for test/more/second-more/third more</span><span class="se">\n\n</span><span class="s2">"</span>
|
|
<span class="s2">"Third more text</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="p">),</span>
|
|
<span class="p">])</span>
|
|
<span class="k">def</span> <span class="nf">test_subtopic_fetch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">helparg</span><span class="p">,</span> <span class="n">expected</span><span class="p">):</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> Check retrieval of subtopics.</span>
|
|
|
|
<span class="sd"> """</span>
|
|
<span class="k">class</span> <span class="nc">TestCmd</span><span class="p">(</span><span class="n">Command</span><span class="p">):</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> Main help text</span>
|
|
|
|
<span class="sd"> # SUBTOPICS</span>
|
|
|
|
<span class="sd"> ## creating extra stuff</span>
|
|
|
|
<span class="sd"> Help on creating extra stuff.</span>
|
|
|
|
<span class="sd"> ### subsubtopic</span>
|
|
|
|
<span class="sd"> A subsubtopic text</span>
|
|
|
|
<span class="sd"> ## Something else</span>
|
|
|
|
<span class="sd"> Something else</span>
|
|
|
|
<span class="sd"> ## More</span>
|
|
|
|
<span class="sd"> Another text</span>
|
|
|
|
<span class="sd"> ### Second-More</span>
|
|
|
|
<span class="sd"> The Second More text.</span>
|
|
|
|
<span class="sd"> #### More again</span>
|
|
|
|
<span class="sd"> Even more text.</span>
|
|
|
|
<span class="sd"> #### Third more</span>
|
|
|
|
<span class="sd"> Third more text</span>
|
|
|
|
<span class="sd"> """</span>
|
|
<span class="n">key</span> <span class="o">=</span> <span class="s2">"test"</span>
|
|
|
|
<span class="k">class</span> <span class="nc">TestCmdSet</span><span class="p">(</span><span class="n">CmdSet</span><span class="p">):</span>
|
|
<span class="k">def</span> <span class="nf">at_cmdset_creation</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">TestCmd</span><span class="p">())</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">help_module</span><span class="o">.</span><span class="n">CmdHelp</span><span class="p">())</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">help_module</span><span class="o">.</span><span class="n">CmdHelp</span><span class="p">(),</span>
|
|
<span class="n">helparg</span><span class="p">,</span>
|
|
<span class="n">expected</span><span class="p">,</span>
|
|
<span class="n">cmdset</span><span class="o">=</span><span class="n">TestCmdSet</span><span class="p">())</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="TestSystem"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestSystem">[docs]</a><span class="k">class</span> <span class="nc">TestSystem</span><span class="p">(</span><span class="n">CommandTest</span><span class="p">):</span>
|
|
<div class="viewcode-block" id="TestSystem.test_py"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestSystem.test_py">[docs]</a> <span class="k">def</span> <span class="nf">test_py</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="c1"># we are not testing CmdReload, CmdReset and CmdShutdown, CmdService or CmdTime</span>
|
|
<span class="c1"># since the server is not running during these tests.</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdPy</span><span class="p">(),</span> <span class="s2">"1+2"</span><span class="p">,</span> <span class="s2">">>> 1+2|3"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdPy</span><span class="p">(),</span> <span class="s2">"/clientraw 1+2"</span><span class="p">,</span> <span class="s2">">>> 1+2|3"</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestSystem.test_scripts"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestSystem.test_scripts">[docs]</a> <span class="k">def</span> <span class="nf">test_scripts</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdScripts</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"dbref "</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestSystem.test_objects"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestSystem.test_objects">[docs]</a> <span class="k">def</span> <span class="nf">test_objects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdObjects</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Object subtype totals"</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestSystem.test_about"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestSystem.test_about">[docs]</a> <span class="k">def</span> <span class="nf">test_about</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdAbout</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestSystem.test_server_load"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestSystem.test_server_load">[docs]</a> <span class="k">def</span> <span class="nf">test_server_load</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdServerLoad</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Server CPU and Memory load:"</span><span class="p">)</span></div></div>
|
|
|
|
<span class="n">_TASK_HANDLER</span> <span class="o">=</span> <span class="kc">None</span>
|
|
|
|
<div class="viewcode-block" id="func_test_cmd_tasks"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.func_test_cmd_tasks">[docs]</a><span class="k">def</span> <span class="nf">func_test_cmd_tasks</span><span class="p">():</span>
|
|
<span class="k">return</span> <span class="s1">'success'</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdTasks"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCmdTasks">[docs]</a><span class="k">class</span> <span class="nc">TestCmdTasks</span><span class="p">(</span><span class="n">CommandTest</span><span class="p">):</span>
|
|
|
|
<div class="viewcode-block" id="TestCmdTasks.setUp"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCmdTasks.setUp">[docs]</a> <span class="k">def</span> <span class="nf">setUp</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">setUp</span><span class="p">()</span>
|
|
<span class="c1"># get a reference of TASK_HANDLER</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">timedelay</span> <span class="o">=</span> <span class="mi">5</span>
|
|
<span class="k">global</span> <span class="n">_TASK_HANDLER</span>
|
|
<span class="k">if</span> <span class="n">_TASK_HANDLER</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
<span class="kn">from</span> <span class="nn">evennia.scripts.taskhandler</span> <span class="kn">import</span> <span class="n">TASK_HANDLER</span> <span class="k">as</span> <span class="n">_TASK_HANDLER</span>
|
|
<span class="n">_TASK_HANDLER</span><span class="o">.</span><span class="n">clock</span> <span class="o">=</span> <span class="n">task</span><span class="o">.</span><span class="n">Clock</span><span class="p">()</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">task_handler</span> <span class="o">=</span> <span class="n">_TASK_HANDLER</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">task_handler</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">task</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">task_handler</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">timedelay</span><span class="p">,</span> <span class="n">func_test_cmd_tasks</span><span class="p">)</span>
|
|
<span class="n">task_args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">task_handler</span><span class="o">.</span><span class="n">tasks</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">get_id</span><span class="p">(),</span> <span class="kc">False</span><span class="p">)</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="TestCmdTasks.tearDown"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCmdTasks.tearDown">[docs]</a> <span class="k">def</span> <span class="nf">tearDown</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">tearDown</span><span class="p">()</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">task_handler</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdTasks.test_no_tasks"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCmdTasks.test_no_tasks">[docs]</a> <span class="k">def</span> <span class="nf">test_no_tasks</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">task_handler</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdTasks</span><span class="p">(),</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">'There are no active tasks.'</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdTasks.test_active_task"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCmdTasks.test_active_task">[docs]</a> <span class="k">def</span> <span class="nf">test_active_task</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">cmd_result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdTasks</span><span class="p">(),</span> <span class="s1">''</span><span class="p">)</span>
|
|
<span class="k">for</span> <span class="n">ptrn</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'Task ID'</span><span class="p">,</span> <span class="s1">'Completion'</span><span class="p">,</span> <span class="s1">'Date'</span><span class="p">,</span> <span class="s1">'Function'</span><span class="p">,</span> <span class="s1">'KWARGS'</span><span class="p">,</span> <span class="s1">'persisten'</span><span class="p">,</span>
|
|
<span class="s1">'1'</span><span class="p">,</span> <span class="sa">r</span><span class="s1">'\d+/\d+/\d+'</span><span class="p">,</span> <span class="sa">r</span><span class="s1">'\d+\:'</span><span class="p">,</span> <span class="sa">r</span><span class="s1">'\d+\:\d+'</span><span class="p">,</span> <span class="sa">r</span><span class="s1">'\:\d+'</span><span class="p">,</span> <span class="s1">'func_test'</span><span class="p">,</span> <span class="s1">'</span><span class="si">{}</span><span class="s1">'</span><span class="p">,</span>
|
|
<span class="s1">'False'</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertRegex</span><span class="p">(</span><span class="n">cmd_result</span><span class="p">,</span> <span class="n">ptrn</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdTasks.test_persistent_task"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCmdTasks.test_persistent_task">[docs]</a> <span class="k">def</span> <span class="nf">test_persistent_task</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">task_handler</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">task_handler</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">timedelay</span><span class="p">,</span> <span class="n">func_test_cmd_tasks</span><span class="p">,</span> <span class="n">persistent</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
<span class="n">cmd_result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdTasks</span><span class="p">(),</span> <span class="s1">''</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertRegex</span><span class="p">(</span><span class="n">cmd_result</span><span class="p">,</span> <span class="s1">'True'</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdTasks.test_pause_unpause"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCmdTasks.test_pause_unpause">[docs]</a> <span class="k">def</span> <span class="nf">test_pause_unpause</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="c1"># test pause</span>
|
|
<span class="n">args</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">'/pause </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">get_id</span><span class="p">()</span><span class="si">}</span><span class="s1">'</span>
|
|
<span class="n">wanted_msg</span> <span class="o">=</span> <span class="s1">'Pause task 1 with completion date'</span>
|
|
<span class="n">cmd_result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdTasks</span><span class="p">(),</span> <span class="n">args</span><span class="p">,</span> <span class="n">wanted_msg</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertRegex</span><span class="p">(</span><span class="n">cmd_result</span><span class="p">,</span> <span class="s1">' \(func_test_cmd_tasks\) '</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">execute_cmd</span><span class="p">(</span><span class="s1">'y'</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertTrue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">paused</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">task_handler</span><span class="o">.</span><span class="n">clock</span><span class="o">.</span><span class="n">advance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">timedelay</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
|
|
<span class="c1"># test unpause</span>
|
|
<span class="n">args</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">'/unpause </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">get_id</span><span class="p">()</span><span class="si">}</span><span class="s1">'</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertTrue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">exists</span><span class="p">())</span>
|
|
<span class="n">wanted_msg</span> <span class="o">=</span> <span class="s1">'Unpause task 1 with completion date'</span>
|
|
<span class="n">cmd_result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdTasks</span><span class="p">(),</span> <span class="n">args</span><span class="p">,</span> <span class="n">wanted_msg</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertRegex</span><span class="p">(</span><span class="n">cmd_result</span><span class="p">,</span> <span class="s1">' \(func_test_cmd_tasks\) '</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">execute_cmd</span><span class="p">(</span><span class="s1">'y'</span><span class="p">)</span>
|
|
<span class="c1"># verify task continues after unpause</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">task_handler</span><span class="o">.</span><span class="n">clock</span><span class="o">.</span><span class="n">advance</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertFalse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">exists</span><span class="p">())</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdTasks.test_do_task"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCmdTasks.test_do_task">[docs]</a> <span class="k">def</span> <span class="nf">test_do_task</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">args</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">'/do_task </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">get_id</span><span class="p">()</span><span class="si">}</span><span class="s1">'</span>
|
|
<span class="n">wanted_msg</span> <span class="o">=</span> <span class="s1">'Do_task task 1 with completion date'</span>
|
|
<span class="n">cmd_result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdTasks</span><span class="p">(),</span> <span class="n">args</span><span class="p">,</span> <span class="n">wanted_msg</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertRegex</span><span class="p">(</span><span class="n">cmd_result</span><span class="p">,</span> <span class="s1">' \(func_test_cmd_tasks\) '</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">execute_cmd</span><span class="p">(</span><span class="s1">'y'</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertFalse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">exists</span><span class="p">())</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdTasks.test_remove"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCmdTasks.test_remove">[docs]</a> <span class="k">def</span> <span class="nf">test_remove</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">args</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">'/remove </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">get_id</span><span class="p">()</span><span class="si">}</span><span class="s1">'</span>
|
|
<span class="n">wanted_msg</span> <span class="o">=</span> <span class="s1">'Remove task 1 with completion date'</span>
|
|
<span class="n">cmd_result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdTasks</span><span class="p">(),</span> <span class="n">args</span><span class="p">,</span> <span class="n">wanted_msg</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertRegex</span><span class="p">(</span><span class="n">cmd_result</span><span class="p">,</span> <span class="s1">' \(func_test_cmd_tasks\) '</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">execute_cmd</span><span class="p">(</span><span class="s1">'y'</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertFalse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">exists</span><span class="p">())</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdTasks.test_call"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCmdTasks.test_call">[docs]</a> <span class="k">def</span> <span class="nf">test_call</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">args</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">'/call </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">get_id</span><span class="p">()</span><span class="si">}</span><span class="s1">'</span>
|
|
<span class="n">wanted_msg</span> <span class="o">=</span> <span class="s1">'Call task 1 with completion date'</span>
|
|
<span class="n">cmd_result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdTasks</span><span class="p">(),</span> <span class="n">args</span><span class="p">,</span> <span class="n">wanted_msg</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertRegex</span><span class="p">(</span><span class="n">cmd_result</span><span class="p">,</span> <span class="s1">' \(func_test_cmd_tasks\) '</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">execute_cmd</span><span class="p">(</span><span class="s1">'y'</span><span class="p">)</span>
|
|
<span class="c1"># make certain the task is still active</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertTrue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">active</span><span class="p">())</span>
|
|
<span class="c1"># go past delay time, the task should call do_task and remove itself after calling.</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">task_handler</span><span class="o">.</span><span class="n">clock</span><span class="o">.</span><span class="n">advance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">timedelay</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertFalse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">exists</span><span class="p">())</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdTasks.test_cancel"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCmdTasks.test_cancel">[docs]</a> <span class="k">def</span> <span class="nf">test_cancel</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">args</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">'/cancel </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">get_id</span><span class="p">()</span><span class="si">}</span><span class="s1">'</span>
|
|
<span class="n">wanted_msg</span> <span class="o">=</span> <span class="s1">'Cancel task 1 with completion date'</span>
|
|
<span class="n">cmd_result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdTasks</span><span class="p">(),</span> <span class="n">args</span><span class="p">,</span> <span class="n">wanted_msg</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertRegex</span><span class="p">(</span><span class="n">cmd_result</span><span class="p">,</span> <span class="s1">' \(func_test_cmd_tasks\) '</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">execute_cmd</span><span class="p">(</span><span class="s1">'y'</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertTrue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">exists</span><span class="p">())</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertFalse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">active</span><span class="p">())</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdTasks.test_func_name_manipulation"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCmdTasks.test_func_name_manipulation">[docs]</a> <span class="k">def</span> <span class="nf">test_func_name_manipulation</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">task_handler</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">timedelay</span><span class="p">,</span> <span class="n">func_test_cmd_tasks</span><span class="p">)</span> <span class="c1"># add an extra task</span>
|
|
<span class="n">args</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">'/remove func_test_cmd_tasks'</span>
|
|
<span class="n">wanted_msg</span> <span class="o">=</span> <span class="s1">'Task action remove completed on task ID 1.|The task function remove returned: True|'</span> \
|
|
<span class="s1">'Task action remove completed on task ID 2.|The task function remove returned: True'</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdTasks</span><span class="p">(),</span> <span class="n">args</span><span class="p">,</span> <span class="n">wanted_msg</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertFalse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">task_handler</span><span class="o">.</span><span class="n">tasks</span><span class="p">)</span> <span class="c1"># no tasks should exist.</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdTasks.test_wrong_func_name"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCmdTasks.test_wrong_func_name">[docs]</a> <span class="k">def</span> <span class="nf">test_wrong_func_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">args</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">'/remove intentional_fail'</span>
|
|
<span class="n">wanted_msg</span> <span class="o">=</span> <span class="s1">'No tasks deferring function name intentional_fail found.'</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdTasks</span><span class="p">(),</span> <span class="n">args</span><span class="p">,</span> <span class="n">wanted_msg</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertTrue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">active</span><span class="p">())</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdTasks.test_no_input"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCmdTasks.test_no_input">[docs]</a> <span class="k">def</span> <span class="nf">test_no_input</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">args</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">'/cancel </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">get_id</span><span class="p">()</span><span class="si">}</span><span class="s1">'</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdTasks</span><span class="p">(),</span> <span class="n">args</span><span class="p">)</span>
|
|
<span class="c1"># task should complete since no input was received</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">task_handler</span><span class="o">.</span><span class="n">clock</span><span class="o">.</span><span class="n">advance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">timedelay</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertFalse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">exists</span><span class="p">())</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdTasks.test_responce_of_yes"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCmdTasks.test_responce_of_yes">[docs]</a> <span class="k">def</span> <span class="nf">test_responce_of_yes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdTasks</span><span class="p">(),</span> <span class="sa">f</span><span class="s1">'/cancel </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">get_id</span><span class="p">()</span><span class="si">}</span><span class="s1">'</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">msg</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">execute_cmd</span><span class="p">(</span><span class="s1">'y'</span><span class="p">)</span>
|
|
<span class="n">text</span> <span class="o">=</span> <span class="s1">''</span>
|
|
<span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">kwargs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">msg</span><span class="o">.</span><span class="n">mock_calls</span><span class="p">:</span>
|
|
<span class="n">text</span> <span class="o">+=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'text'</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="s1">'cancel request completed.The task function cancel returned: True'</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertTrue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">exists</span><span class="p">())</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdTasks.test_task_complete_waiting_input"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCmdTasks.test_task_complete_waiting_input">[docs]</a> <span class="k">def</span> <span class="nf">test_task_complete_waiting_input</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sd">"""Test for task completing while waiting for input."""</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdTasks</span><span class="p">(),</span> <span class="sa">f</span><span class="s1">'/cancel </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">get_id</span><span class="p">()</span><span class="si">}</span><span class="s1">'</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">task_handler</span><span class="o">.</span><span class="n">clock</span><span class="o">.</span><span class="n">advance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">timedelay</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">msg</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">execute_cmd</span><span class="p">(</span><span class="s1">'y'</span><span class="p">)</span>
|
|
<span class="n">text</span> <span class="o">=</span> <span class="s1">''</span>
|
|
<span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">kwargs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">msg</span><span class="o">.</span><span class="n">mock_calls</span><span class="p">:</span>
|
|
<span class="n">text</span> <span class="o">+=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'text'</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="s1">'Task completed while waiting for input.'</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertFalse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">exists</span><span class="p">())</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdTasks.test_new_task_waiting_input"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCmdTasks.test_new_task_waiting_input">[docs]</a> <span class="k">def</span> <span class="nf">test_new_task_waiting_input</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> Test task completing than a new task with the same ID being made while waitinf for input.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertTrue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">get_id</span><span class="p">(),</span> <span class="mi">1</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdTasks</span><span class="p">(),</span> <span class="sa">f</span><span class="s1">'/cancel </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">get_id</span><span class="p">()</span><span class="si">}</span><span class="s1">'</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">task_handler</span><span class="o">.</span><span class="n">clock</span><span class="o">.</span><span class="n">advance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">timedelay</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertFalse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">exists</span><span class="p">())</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">task</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">task_handler</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">timedelay</span><span class="p">,</span> <span class="n">func_test_cmd_tasks</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertTrue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">get_id</span><span class="p">(),</span> <span class="mi">1</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">msg</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">execute_cmd</span><span class="p">(</span><span class="s1">'y'</span><span class="p">)</span>
|
|
<span class="n">text</span> <span class="o">=</span> <span class="s1">''</span>
|
|
<span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">kwargs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">msg</span><span class="o">.</span><span class="n">mock_calls</span><span class="p">:</span>
|
|
<span class="n">text</span> <span class="o">+=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'text'</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="s1">'Task completed while waiting for input.'</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdTasks.test_misformed_command"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCmdTasks.test_misformed_command">[docs]</a> <span class="k">def</span> <span class="nf">test_misformed_command</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">wanted_msg</span> <span class="o">=</span> <span class="s1">'Task command misformed.|Proper format tasks[/switch] '</span> \
|
|
<span class="s1">'[function name or task id]'</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">CmdTasks</span><span class="p">(),</span> <span class="sa">f</span><span class="s1">'/cancel'</span><span class="p">,</span> <span class="n">wanted_msg</span><span class="p">)</span></div></div>
|
|
|
|
|
|
<div class="viewcode-block" id="TestAdmin"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAdmin">[docs]</a><span class="k">class</span> <span class="nc">TestAdmin</span><span class="p">(</span><span class="n">CommandTest</span><span class="p">):</span>
|
|
<div class="viewcode-block" id="TestAdmin.test_emit"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAdmin.test_emit">[docs]</a> <span class="k">def</span> <span class="nf">test_emit</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">admin</span><span class="o">.</span><span class="n">CmdEmit</span><span class="p">(),</span> <span class="s2">"Char2 = Test"</span><span class="p">,</span> <span class="s2">"Emitted to Char2:</span><span class="se">\n</span><span class="s2">Test"</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestAdmin.test_perm"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAdmin.test_perm">[docs]</a> <span class="k">def</span> <span class="nf">test_perm</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">admin</span><span class="o">.</span><span class="n">CmdPerm</span><span class="p">(),</span>
|
|
<span class="s2">"Obj = Builder"</span><span class="p">,</span>
|
|
<span class="s2">"Permission 'Builder' given to Obj (the Object/Character)."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">admin</span><span class="o">.</span><span class="n">CmdPerm</span><span class="p">(),</span>
|
|
<span class="s2">"Char2 = Builder"</span><span class="p">,</span>
|
|
<span class="s2">"Permission 'Builder' given to Char2 (the Object/Character)."</span><span class="p">,</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestAdmin.test_wall"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAdmin.test_wall">[docs]</a> <span class="k">def</span> <span class="nf">test_wall</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">admin</span><span class="o">.</span><span class="n">CmdWall</span><span class="p">(),</span> <span class="s2">"Test"</span><span class="p">,</span> <span class="s2">"Announcing to all connected sessions ..."</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestAdmin.test_ban"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAdmin.test_ban">[docs]</a> <span class="k">def</span> <span class="nf">test_ban</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">admin</span><span class="o">.</span><span class="n">CmdBan</span><span class="p">(),</span> <span class="s2">"Char"</span><span class="p">,</span> <span class="s2">"Name-ban 'char' was added. Use unban to reinstate."</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestAdmin.test_force"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAdmin.test_force">[docs]</a> <span class="k">def</span> <span class="nf">test_force</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">cid</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">char2</span><span class="o">.</span><span class="n">id</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">admin</span><span class="o">.</span><span class="n">CmdForce</span><span class="p">(),</span>
|
|
<span class="s2">"Char2=say test"</span><span class="p">,</span>
|
|
<span class="s1">'Char2(#</span><span class="si">{}</span><span class="s1">) says, "test"|You have forced Char2 to: say test'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">cid</span><span class="p">),</span>
|
|
<span class="p">)</span></div></div>
|
|
|
|
|
|
<div class="viewcode-block" id="TestAccount"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAccount">[docs]</a><span class="k">class</span> <span class="nc">TestAccount</span><span class="p">(</span><span class="n">CommandTest</span><span class="p">):</span>
|
|
<div class="viewcode-block" id="TestAccount.test_ooc_look"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAccount.test_ooc_look">[docs]</a> <span class="k">def</span> <span class="nf">test_ooc_look</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="n">settings</span><span class="o">.</span><span class="n">MULTISESSION_MODE</span> <span class="o"><</span> <span class="mi">2</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">account</span><span class="o">.</span><span class="n">CmdOOCLook</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"You are out-of-character (OOC)."</span><span class="p">,</span> <span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span>
|
|
<span class="p">)</span>
|
|
<span class="k">if</span> <span class="n">settings</span><span class="o">.</span><span class="n">MULTISESSION_MODE</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">account</span><span class="o">.</span><span class="n">CmdOOCLook</span><span class="p">(),</span>
|
|
<span class="s2">""</span><span class="p">,</span>
|
|
<span class="s2">"Account TestAccount (you are OutofCharacter)"</span><span class="p">,</span>
|
|
<span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="p">,</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestAccount.test_ooc"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAccount.test_ooc">[docs]</a> <span class="k">def</span> <span class="nf">test_ooc</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">account</span><span class="o">.</span><span class="n">CmdOOC</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"You go OOC."</span><span class="p">,</span> <span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestAccount.test_ic"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAccount.test_ic">[docs]</a> <span class="k">def</span> <span class="nf">test_ic</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">_playable_characters</span> <span class="o">=</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="p">]</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="o">.</span><span class="n">unpuppet_object</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">session</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">account</span><span class="o">.</span><span class="n">CmdIC</span><span class="p">(),</span> <span class="s2">"Char"</span><span class="p">,</span> <span class="s2">"You become Char."</span><span class="p">,</span> <span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="p">,</span> <span class="n">receiver</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestAccount.test_ic__other_object"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAccount.test_ic__other_object">[docs]</a> <span class="k">def</span> <span class="nf">test_ic__other_object</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">_playable_characters</span> <span class="o">=</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">obj1</span><span class="p">]</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="o">.</span><span class="n">unpuppet_object</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">session</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">account</span><span class="o">.</span><span class="n">CmdIC</span><span class="p">(),</span> <span class="s2">"Obj"</span><span class="p">,</span> <span class="s2">"You become Obj."</span><span class="p">,</span> <span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="p">,</span> <span class="n">receiver</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">obj1</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestAccount.test_ic__nonaccess"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAccount.test_ic__nonaccess">[docs]</a> <span class="k">def</span> <span class="nf">test_ic__nonaccess</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="o">.</span><span class="n">unpuppet_object</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">session</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">account</span><span class="o">.</span><span class="n">CmdIC</span><span class="p">(),</span>
|
|
<span class="s2">"Nonexistent"</span><span class="p">,</span>
|
|
<span class="s2">"That is not a valid character choice."</span><span class="p">,</span>
|
|
<span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="p">,</span>
|
|
<span class="n">receiver</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="p">,</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestAccount.test_password"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAccount.test_password">[docs]</a> <span class="k">def</span> <span class="nf">test_password</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">account</span><span class="o">.</span><span class="n">CmdPassword</span><span class="p">(),</span>
|
|
<span class="s2">"testpassword = testpassword"</span><span class="p">,</span>
|
|
<span class="s2">"Password changed."</span><span class="p">,</span>
|
|
<span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="p">,</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestAccount.test_option"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAccount.test_option">[docs]</a> <span class="k">def</span> <span class="nf">test_option</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">account</span><span class="o">.</span><span class="n">CmdOption</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Client settings"</span><span class="p">,</span> <span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestAccount.test_who"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAccount.test_who">[docs]</a> <span class="k">def</span> <span class="nf">test_who</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">account</span><span class="o">.</span><span class="n">CmdWho</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Accounts:"</span><span class="p">,</span> <span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestAccount.test_quit"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAccount.test_quit">[docs]</a> <span class="k">def</span> <span class="nf">test_quit</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">account</span><span class="o">.</span><span class="n">CmdQuit</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Quitting. Hope to see you again, soon."</span><span class="p">,</span> <span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestAccount.test_sessions"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAccount.test_sessions">[docs]</a> <span class="k">def</span> <span class="nf">test_sessions</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">account</span><span class="o">.</span><span class="n">CmdSessions</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Your current session(s):"</span><span class="p">,</span> <span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestAccount.test_color_test"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAccount.test_color_test">[docs]</a> <span class="k">def</span> <span class="nf">test_color_test</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">account</span><span class="o">.</span><span class="n">CmdColorTest</span><span class="p">(),</span> <span class="s2">"ansi"</span><span class="p">,</span> <span class="s2">"ANSI colors:"</span><span class="p">,</span> <span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestAccount.test_char_create"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAccount.test_char_create">[docs]</a> <span class="k">def</span> <span class="nf">test_char_create</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">account</span><span class="o">.</span><span class="n">CmdCharCreate</span><span class="p">(),</span>
|
|
<span class="s2">"Test1=Test char"</span><span class="p">,</span>
|
|
<span class="s2">"Created new character Test1. Use ic Test1 to enter the game"</span><span class="p">,</span>
|
|
<span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="p">,</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestAccount.test_char_delete"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAccount.test_char_delete">[docs]</a> <span class="k">def</span> <span class="nf">test_char_delete</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="c1"># Chardelete requires user input; this test is mainly to confirm</span>
|
|
<span class="c1"># whether permissions are being checked</span>
|
|
|
|
<span class="c1"># Add char to account playable characters</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">_playable_characters</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Try deleting as Developer</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">account</span><span class="o">.</span><span class="n">CmdCharDelete</span><span class="p">(),</span>
|
|
<span class="s2">"Char"</span><span class="p">,</span>
|
|
<span class="s2">"This will permanently destroy 'Char'. This cannot be undone. Continue yes/[no]?"</span><span class="p">,</span>
|
|
<span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="c1"># Downgrade permissions on account</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="o">.</span><span class="n">permissions</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">"Player"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="o">.</span><span class="n">permissions</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="s2">"Developer"</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Set lock on character object to prevent deletion</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">locks</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">"delete:none()"</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Try deleting as Player</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">account</span><span class="o">.</span><span class="n">CmdCharDelete</span><span class="p">(),</span>
|
|
<span class="s2">"Char"</span><span class="p">,</span>
|
|
<span class="s2">"You do not have permission to delete this character."</span><span class="p">,</span>
|
|
<span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="c1"># Set lock on character object to allow self-delete</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">locks</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">"delete:pid(</span><span class="si">%i</span><span class="s2">)"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="o">.</span><span class="n">id</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Try deleting as Player again</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">account</span><span class="o">.</span><span class="n">CmdCharDelete</span><span class="p">(),</span>
|
|
<span class="s2">"Char"</span><span class="p">,</span>
|
|
<span class="s2">"This will permanently destroy 'Char'. This cannot be undone. Continue yes/[no]?"</span><span class="p">,</span>
|
|
<span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="p">,</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestAccount.test_quell"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAccount.test_quell">[docs]</a> <span class="k">def</span> <span class="nf">test_quell</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">account</span><span class="o">.</span><span class="n">CmdQuell</span><span class="p">(),</span>
|
|
<span class="s2">""</span><span class="p">,</span>
|
|
<span class="s2">"Quelling to current puppet's permissions (developer)."</span><span class="p">,</span>
|
|
<span class="n">caller</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="p">,</span>
|
|
<span class="p">)</span></div></div>
|
|
|
|
|
|
<div class="viewcode-block" id="TestBuilding"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding">[docs]</a><span class="k">class</span> <span class="nc">TestBuilding</span><span class="p">(</span><span class="n">CommandTest</span><span class="p">):</span>
|
|
<div class="viewcode-block" id="TestBuilding.test_create"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_create">[docs]</a> <span class="k">def</span> <span class="nf">test_create</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">name</span> <span class="o">=</span> <span class="n">settings</span><span class="o">.</span><span class="n">BASE_OBJECT_TYPECLASS</span><span class="o">.</span><span class="n">rsplit</span><span class="p">(</span><span class="s2">"."</span><span class="p">,</span> <span class="mi">1</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdCreate</span><span class="p">(),</span>
|
|
<span class="s2">"/d TestObj1"</span><span class="p">,</span> <span class="c1"># /d switch is abbreviated form of /drop</span>
|
|
<span class="s2">"You create a new </span><span class="si">%s</span><span class="s2">: TestObj1."</span> <span class="o">%</span> <span class="n">name</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdCreate</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdCreate</span><span class="p">(),</span>
|
|
<span class="s2">"TestObj1;foo;bar"</span><span class="p">,</span>
|
|
<span class="s2">"You create a new </span><span class="si">%s</span><span class="s2">: TestObj1 (aliases: foo, bar)."</span> <span class="o">%</span> <span class="n">name</span><span class="p">,</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_examine"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_examine">[docs]</a> <span class="k">def</span> <span class="nf">test_examine</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdExamine</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Name/key: Room"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdExamine</span><span class="p">(),</span> <span class="s2">"Obj"</span><span class="p">,</span> <span class="s2">"Name/key: Obj"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdExamine</span><span class="p">(),</span> <span class="s2">"Obj"</span><span class="p">,</span> <span class="s2">"Name/key: Obj"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdExamine</span><span class="p">(),</span> <span class="s2">"*TestAccount"</span><span class="p">,</span> <span class="s2">"Name/key: TestAccount"</span><span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">test</span> <span class="o">=</span> <span class="s2">"testval"</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdExamine</span><span class="p">(),</span> <span class="s2">"self/test"</span><span class="p">,</span> <span class="s2">"Attribute Char/test [category=None]:</span><span class="se">\n\n</span><span class="s2">testval"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdExamine</span><span class="p">(),</span> <span class="s2">"NotFound"</span><span class="p">,</span> <span class="s2">"Could not find 'NotFound'."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdExamine</span><span class="p">(),</span> <span class="s2">"out"</span><span class="p">,</span> <span class="s2">"Name/key: out"</span><span class="p">)</span>
|
|
|
|
<span class="c1"># escape inlinefuncs</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">test2</span> <span class="o">=</span> <span class="s2">"this is a $random() value."</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdExamine</span><span class="p">(),</span>
|
|
<span class="s2">"self/test2"</span><span class="p">,</span>
|
|
<span class="s2">"Attribute Char/test2 [category=None]:</span><span class="se">\n\n</span><span class="s2">this is a \$random() value."</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="o">.</span><span class="n">scripts</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">script</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdExamine</span><span class="p">(),</span> <span class="s2">""</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="o">.</span><span class="n">scripts</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">script</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdExamine</span><span class="p">(),</span> <span class="s2">"*TestAccount"</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_set_obj_alias"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_set_obj_alias">[docs]</a> <span class="k">def</span> <span class="nf">test_set_obj_alias</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">oid</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj1</span><span class="o">.</span><span class="n">id</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetObjAlias</span><span class="p">(),</span> <span class="s2">"Obj ="</span><span class="p">,</span> <span class="s2">"Cleared aliases from Obj"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetObjAlias</span><span class="p">(),</span>
|
|
<span class="s2">"Obj = TestObj1b"</span><span class="p">,</span>
|
|
<span class="s2">"Alias(es) for 'Obj(#</span><span class="si">{}</span><span class="s2">)' set to 'testobj1b'."</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">oid</span><span class="p">),</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetObjAlias</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetObjAlias</span><span class="p">(),</span> <span class="s2">"NotFound ="</span><span class="p">,</span> <span class="s2">"Could not find 'NotFound'."</span><span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetObjAlias</span><span class="p">(),</span> <span class="s2">"Obj"</span><span class="p">,</span> <span class="s2">"Aliases for Obj(#</span><span class="si">{}</span><span class="s2">): 'testobj1b'"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">oid</span><span class="p">))</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetObjAlias</span><span class="p">(),</span> <span class="s2">"Obj2 ="</span><span class="p">,</span> <span class="s2">"Cleared aliases from Obj2"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetObjAlias</span><span class="p">(),</span> <span class="s2">"Obj2 ="</span><span class="p">,</span> <span class="s2">"No aliases to clear."</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_copy"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_copy">[docs]</a> <span class="k">def</span> <span class="nf">test_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdCopy</span><span class="p">(),</span>
|
|
<span class="s2">"Obj = TestObj2;TestObj2b, TestObj3;TestObj3b"</span><span class="p">,</span>
|
|
<span class="s2">"Copied Obj to 'TestObj3' (aliases: ['TestObj3b']"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdCopy</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdCopy</span><span class="p">(),</span> <span class="s2">"Obj"</span><span class="p">,</span> <span class="s2">"Identical copy of Obj, named 'Obj_copy' was created."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdCopy</span><span class="p">(),</span> <span class="s2">"NotFound = Foo"</span><span class="p">,</span> <span class="s2">"Could not find 'NotFound'."</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_attribute_commands"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_attribute_commands">[docs]</a> <span class="k">def</span> <span class="nf">test_attribute_commands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s1">'Obj/test1="value1"'</span><span class="p">,</span>
|
|
<span class="s2">"Created attribute Obj/test1 = 'value1'"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s1">'Obj2/test2="value2"'</span><span class="p">,</span>
|
|
<span class="s2">"Created attribute Obj2/test2 = 'value2'"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj2/test2"</span><span class="p">,</span> <span class="s2">"Attribute Obj2/test2 = value2"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj2/NotFound"</span><span class="p">,</span> <span class="s2">"Obj2 has no attribute 'notfound'."</span><span class="p">)</span>
|
|
|
|
<span class="k">with</span> <span class="n">patch</span><span class="p">(</span><span class="s2">"evennia.commands.default.building.EvEditor"</span><span class="p">)</span> <span class="k">as</span> <span class="n">mock_ed</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"/edit Obj2/test3"</span><span class="p">)</span>
|
|
<span class="n">mock_ed</span><span class="o">.</span><span class="n">assert_called_with</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="p">,</span> <span class="n">Anything</span><span class="p">,</span> <span class="n">Anything</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">"Obj2/test3"</span><span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s1">'Obj2/test3="value3"'</span><span class="p">,</span>
|
|
<span class="s2">"Created attribute Obj2/test3 = 'value3'"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj2/test3 = "</span><span class="p">,</span>
|
|
<span class="s2">"Deleted attribute 'test3' (= True) from Obj2."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdCpAttr</span><span class="p">(),</span>
|
|
<span class="s2">"/copy Obj2/test2 = Obj2/test3"</span><span class="p">,</span>
|
|
<span class="s1">'@cpattr: Extra switch "/copy" ignored.|</span><span class="se">\n</span><span class="s1">Copied Obj2.test2 -> Obj2.test3. '</span>
|
|
<span class="s2">"(value: 'value2')"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdMvAttr</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdMvAttr</span><span class="p">(),</span> <span class="s2">"Obj2/test2 = Obj/test3"</span><span class="p">,</span> <span class="s2">"Moved Obj2.test2 -> Obj.test3"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdCpAttr</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdCpAttr</span><span class="p">(),</span> <span class="s2">"Obj/test1 = Obj2/test3"</span><span class="p">,</span> <span class="s2">"Copied Obj.test1 -> Obj2.test3"</span><span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdWipe</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdWipe</span><span class="p">(),</span> <span class="s2">"Obj2/test2/test3"</span><span class="p">,</span> <span class="s2">"Wiped attributes test2,test3 on Obj2."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdWipe</span><span class="p">(),</span> <span class="s2">"Obj2"</span><span class="p">,</span> <span class="s2">"Wiped all attributes on Obj2."</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_nested_attribute_commands"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_nested_attribute_commands">[docs]</a> <span class="k">def</span> <span class="nf">test_nested_attribute_commands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="c1"># list - adding white space proves real parsing</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test1=[1,2]"</span><span class="p">,</span> <span class="s2">"Created attribute Obj/test1 = [1, 2]"</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test1"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test1 = [1, 2]"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test1[0]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test1[0] = 1"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test1[1]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test1[1] = 2"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test1[0] = 99"</span><span class="p">,</span>
|
|
<span class="s2">"Modified attribute Obj/test1 = [99, 2]"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test1[0]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test1[0] = 99"</span><span class="p">)</span>
|
|
<span class="c1"># list delete</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test1[0] ="</span><span class="p">,</span>
|
|
<span class="s2">"Deleted attribute 'test1[0]' (= nested) from Obj."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test1[0]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test1[0] = 2"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test1[1]"</span><span class="p">,</span>
|
|
<span class="s2">"Obj has no attribute 'test1[1]'. (Nested lookups attempted)"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="c1"># Delete non-existent</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test1[5] ="</span><span class="p">,</span>
|
|
<span class="s2">"Obj has no attribute 'test1[5]'. (Nested lookups attempted)"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="c1"># Append</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test1[+] = 42"</span><span class="p">,</span>
|
|
<span class="s2">"Modified attribute Obj/test1 = [2, 42]"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test1[+0] = -1"</span><span class="p">,</span>
|
|
<span class="s2">"Modified attribute Obj/test1 = [-1, 2, 42]"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="c1"># dict - removing white space proves real parsing</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test2={ 'one': 1, 'two': 2 }"</span><span class="p">,</span>
|
|
<span class="s2">"Created attribute Obj/test2 = {'one': 1, 'two': 2}"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test2"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test2 = {'one': 1, 'two': 2}"</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test2['one']"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test2['one'] = 1"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test2['one]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test2['one] = 1"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test2['one']=99"</span><span class="p">,</span>
|
|
<span class="s2">"Modified attribute Obj/test2 = {'one': 99, 'two': 2}"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test2['one']"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test2['one'] = 99"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test2['two']"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test2['two'] = 2"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test2[+'three']"</span><span class="p">,</span>
|
|
<span class="s2">"Obj has no attribute 'test2[+'three']'. (Nested lookups attempted)"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test2[+'three'] = 3"</span><span class="p">,</span>
|
|
<span class="s2">"Modified attribute Obj/test2 = {'one': 99, 'two': 2, </span><span class="se">\"</span><span class="s2">+'three'</span><span class="se">\"</span><span class="s2">: 3}"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test2[+'three'] ="</span><span class="p">,</span>
|
|
<span class="s2">"Deleted attribute 'test2[+'three']' (= nested) from Obj."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test2['three']=3"</span><span class="p">,</span>
|
|
<span class="s2">"Modified attribute Obj/test2 = {'one': 99, 'two': 2, 'three': 3}"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="c1"># Dict delete</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test2['two'] ="</span><span class="p">,</span>
|
|
<span class="s2">"Deleted attribute 'test2['two']' (= nested) from Obj."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test2['two']"</span><span class="p">,</span>
|
|
<span class="s2">"Obj has no attribute 'test2['two']'. (Nested lookups attempted)"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test2"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test2 = {'one': 99, 'three': 3}"</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test2[0]"</span><span class="p">,</span>
|
|
<span class="s2">"Obj has no attribute 'test2[0]'. (Nested lookups attempted)"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test2['five'] ="</span><span class="p">,</span>
|
|
<span class="s2">"Obj has no attribute 'test2['five']'. (Nested lookups attempted)"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test2[+]=42"</span><span class="p">,</span>
|
|
<span class="s2">"Modified attribute Obj/test2 = {'one': 99, 'three': 3, '+': 42}"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test2[+1]=33"</span><span class="p">,</span>
|
|
<span class="s2">"Modified attribute Obj/test2 = {'one': 99, 'three': 3, '+': 42, '+1': 33}"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="c1"># tuple</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/tup = (1,2)"</span><span class="p">,</span> <span class="s2">"Created attribute Obj/tup = (1, 2)"</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/tup[1] = 99"</span><span class="p">,</span>
|
|
<span class="s2">"'tuple' object does not support item assignment - (1, 2)"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/tup[+] = 99"</span><span class="p">,</span>
|
|
<span class="s2">"'tuple' object does not support item assignment - (1, 2)"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/tup[+1] = 99"</span><span class="p">,</span>
|
|
<span class="s2">"'tuple' object does not support item assignment - (1, 2)"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="c1"># Special case for tuple, could have a better message</span>
|
|
<span class="s2">"Obj/tup[1] = "</span><span class="p">,</span>
|
|
<span class="s2">"Obj has no attribute 'tup[1]'. (Nested lookups attempted)"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="c1"># Deaper nesting</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test3=[{'one': 1}]"</span><span class="p">,</span>
|
|
<span class="s2">"Created attribute Obj/test3 = [{'one': 1}]"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test3[0]['one']"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test3[0]['one'] = 1"</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test3[0]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test3[0] = {'one': 1}"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test3[0]['one'] ="</span><span class="p">,</span>
|
|
<span class="s2">"Deleted attribute 'test3[0]['one']' (= nested) from Obj."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test3[0]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test3[0] = </span><span class="si">{}</span><span class="s2">"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test3"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test3 = [</span><span class="si">{}</span><span class="s2">]"</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Naughty keys</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test4[0]='foo'"</span><span class="p">,</span>
|
|
<span class="s2">"Created attribute Obj/test4[0] = 'foo'"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test4[0]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test4[0] = foo"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test4=[{'one': 1}]"</span><span class="p">,</span>
|
|
<span class="s2">"Created attribute Obj/test4 = [{'one': 1}]"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test4[0]['one']"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test4[0]['one'] = 1"</span>
|
|
<span class="p">)</span>
|
|
<span class="c1"># Prefer nested items</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test4[0]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test4[0] = {'one': 1}"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test4[0]['one']"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test4[0]['one'] = 1"</span>
|
|
<span class="p">)</span>
|
|
<span class="c1"># Restored access</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdWipe</span><span class="p">(),</span> <span class="s2">"Obj/test4"</span><span class="p">,</span> <span class="s2">"Wiped attributes test4 on Obj."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test4[0]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test4[0] = foo"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
|
<span class="s2">"Obj/test4[0]['one']"</span><span class="p">,</span>
|
|
<span class="s2">"Obj has no attribute 'test4[0]['one']'."</span><span class="p">,</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_split_nested_attr"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_split_nested_attr">[docs]</a> <span class="k">def</span> <span class="nf">test_split_nested_attr</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">split_nested_attr</span> <span class="o">=</span> <span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">()</span><span class="o">.</span><span class="n">split_nested_attr</span>
|
|
<span class="n">test_cases</span> <span class="o">=</span> <span class="p">{</span>
|
|
<span class="s2">"test1"</span><span class="p">:</span> <span class="p">[(</span><span class="s2">"test1"</span><span class="p">,</span> <span class="p">[])],</span>
|
|
<span class="s1">'test2["dict"]'</span><span class="p">:</span> <span class="p">[(</span><span class="s2">"test2"</span><span class="p">,</span> <span class="p">[</span><span class="s2">"dict"</span><span class="p">]),</span> <span class="p">(</span><span class="s1">'test2["dict"]'</span><span class="p">,</span> <span class="p">[])],</span>
|
|
<span class="c1"># Quotes not actually required</span>
|
|
<span class="s2">"test3[dict]"</span><span class="p">:</span> <span class="p">[(</span><span class="s2">"test3"</span><span class="p">,</span> <span class="p">[</span><span class="s2">"dict"</span><span class="p">]),</span> <span class="p">(</span><span class="s2">"test3[dict]"</span><span class="p">,</span> <span class="p">[])],</span>
|
|
<span class="s1">'test4["dict]'</span><span class="p">:</span> <span class="p">[(</span><span class="s2">"test4"</span><span class="p">,</span> <span class="p">[</span><span class="s2">"dict"</span><span class="p">]),</span> <span class="p">(</span><span class="s1">'test4["dict]'</span><span class="p">,</span> <span class="p">[])],</span>
|
|
<span class="c1"># duplicate keys don't cause issues</span>
|
|
<span class="s2">"test5[0][0]"</span><span class="p">:</span> <span class="p">[(</span><span class="s2">"test5"</span><span class="p">,</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">]),</span> <span class="p">(</span><span class="s2">"test5[0]"</span><span class="p">,</span> <span class="p">[</span><span class="mi">0</span><span class="p">]),</span> <span class="p">(</span><span class="s2">"test5[0][0]"</span><span class="p">,</span> <span class="p">[])],</span>
|
|
<span class="c1"># String ints preserved</span>
|
|
<span class="s1">'test6["0"][0]'</span><span class="p">:</span> <span class="p">[(</span><span class="s2">"test6"</span><span class="p">,</span> <span class="p">[</span><span class="s2">"0"</span><span class="p">,</span> <span class="mi">0</span><span class="p">]),</span> <span class="p">(</span><span class="s1">'test6["0"]'</span><span class="p">,</span> <span class="p">[</span><span class="mi">0</span><span class="p">]),</span> <span class="p">(</span><span class="s1">'test6["0"][0]'</span><span class="p">,</span> <span class="p">[])],</span>
|
|
<span class="c1"># Unmatched []</span>
|
|
<span class="s2">"test7[dict"</span><span class="p">:</span> <span class="p">[(</span><span class="s2">"test7[dict"</span><span class="p">,</span> <span class="p">[])],</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">for</span> <span class="n">attr</span><span class="p">,</span> <span class="n">result</span> <span class="ow">in</span> <span class="n">test_cases</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="n">split_nested_attr</span><span class="p">(</span><span class="n">attr</span><span class="p">)),</span> <span class="n">result</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_do_nested_lookup"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_do_nested_lookup">[docs]</a> <span class="k">def</span> <span class="nf">test_do_nested_lookup</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">do_nested_lookup</span> <span class="o">=</span> <span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">()</span><span class="o">.</span><span class="n">do_nested_lookup</span>
|
|
<span class="n">not_found</span> <span class="o">=</span> <span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="o">.</span><span class="n">not_found</span>
|
|
|
|
<span class="k">def</span> <span class="nf">do_test_single</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">result</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="n">do_nested_lookup</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">key</span><span class="p">),</span> <span class="n">result</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">do_test_multi</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">keys</span><span class="p">,</span> <span class="n">result</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="n">do_nested_lookup</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="o">*</span><span class="n">keys</span><span class="p">),</span> <span class="n">result</span><span class="p">)</span>
|
|
|
|
<span class="n">do_test_single</span><span class="p">([],</span> <span class="s2">"test1"</span><span class="p">,</span> <span class="n">not_found</span><span class="p">)</span>
|
|
<span class="n">do_test_single</span><span class="p">([</span><span class="mi">1</span><span class="p">],</span> <span class="s2">"test2"</span><span class="p">,</span> <span class="n">not_found</span><span class="p">)</span>
|
|
<span class="n">do_test_single</span><span class="p">([],</span> <span class="mi">0</span><span class="p">,</span> <span class="n">not_found</span><span class="p">)</span>
|
|
<span class="n">do_test_single</span><span class="p">([],</span> <span class="s2">"0"</span><span class="p">,</span> <span class="n">not_found</span><span class="p">)</span>
|
|
<span class="n">do_test_single</span><span class="p">([</span><span class="mi">1</span><span class="p">],</span> <span class="mi">2</span><span class="p">,</span> <span class="n">not_found</span><span class="p">)</span>
|
|
<span class="n">do_test_single</span><span class="p">([</span><span class="mi">1</span><span class="p">],</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
|
<span class="n">do_test_single</span><span class="p">([</span><span class="mi">1</span><span class="p">],</span> <span class="s2">"0"</span><span class="p">,</span> <span class="n">not_found</span><span class="p">)</span> <span class="c1"># str key is str not int</span>
|
|
<span class="n">do_test_single</span><span class="p">({},</span> <span class="s2">"test3"</span><span class="p">,</span> <span class="n">not_found</span><span class="p">)</span>
|
|
<span class="n">do_test_single</span><span class="p">({},</span> <span class="mi">0</span><span class="p">,</span> <span class="n">not_found</span><span class="p">)</span>
|
|
<span class="n">do_test_single</span><span class="p">({</span><span class="s2">"foo"</span><span class="p">:</span> <span class="s2">"bar"</span><span class="p">},</span> <span class="s2">"foo"</span><span class="p">,</span> <span class="s2">"bar"</span><span class="p">)</span>
|
|
|
|
<span class="n">do_test_multi</span><span class="p">({</span><span class="s2">"one"</span><span class="p">:</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]},</span> <span class="p">(</span><span class="s2">"one"</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">1</span><span class="p">)</span>
|
|
<span class="n">do_test_multi</span><span class="p">([{},</span> <span class="p">{</span><span class="s2">"two"</span><span class="p">:</span> <span class="mi">2</span><span class="p">},</span> <span class="mi">3</span><span class="p">],</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="s2">"two"</span><span class="p">),</span> <span class="mi">2</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_name"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_name">[docs]</a> <span class="k">def</span> <span class="nf">test_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdName</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdName</span><span class="p">(),</span> <span class="s2">"Obj2=Obj3"</span><span class="p">,</span> <span class="s2">"Object's name changed to 'Obj3'."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdName</span><span class="p">(),</span>
|
|
<span class="s2">"*TestAccount=TestAccountRenamed"</span><span class="p">,</span>
|
|
<span class="s2">"Account's name changed to 'TestAccountRenamed'."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdName</span><span class="p">(),</span> <span class="s2">"*NotFound=TestAccountRenamed"</span><span class="p">,</span> <span class="s2">"Could not find '*NotFound'"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdName</span><span class="p">(),</span> <span class="s2">"Obj3=Obj4;foo;bar"</span><span class="p">,</span> <span class="s2">"Object's name changed to 'Obj4' (foo, bar)."</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdName</span><span class="p">(),</span> <span class="s2">"Obj4="</span><span class="p">,</span> <span class="s2">"No names or aliases defined!"</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_desc"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_desc">[docs]</a> <span class="k">def</span> <span class="nf">test_desc</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">oid</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj2</span><span class="o">.</span><span class="n">id</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdDesc</span><span class="p">(),</span> <span class="s2">"Obj2=TestDesc"</span><span class="p">,</span> <span class="s2">"The description was set on Obj2(#</span><span class="si">{}</span><span class="s2">)."</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">oid</span><span class="p">)</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdDesc</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
|
|
<span class="k">with</span> <span class="n">patch</span><span class="p">(</span><span class="s2">"evennia.commands.default.building.EvEditor"</span><span class="p">)</span> <span class="k">as</span> <span class="n">mock_ed</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdDesc</span><span class="p">(),</span> <span class="s2">"/edit"</span><span class="p">)</span>
|
|
<span class="n">mock_ed</span><span class="o">.</span><span class="n">assert_called_with</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="p">,</span>
|
|
<span class="n">key</span><span class="o">=</span><span class="s2">"desc"</span><span class="p">,</span>
|
|
<span class="n">loadfunc</span><span class="o">=</span><span class="n">building</span><span class="o">.</span><span class="n">_desc_load</span><span class="p">,</span>
|
|
<span class="n">quitfunc</span><span class="o">=</span><span class="n">building</span><span class="o">.</span><span class="n">_desc_quit</span><span class="p">,</span>
|
|
<span class="n">savefunc</span><span class="o">=</span><span class="n">building</span><span class="o">.</span><span class="n">_desc_save</span><span class="p">,</span>
|
|
<span class="n">persistent</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_empty_desc"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_empty_desc">[docs]</a> <span class="k">def</span> <span class="nf">test_empty_desc</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> empty desc sets desc as ''</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">oid</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj2</span><span class="o">.</span><span class="n">id</span>
|
|
<span class="n">o2d</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj2</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">desc</span>
|
|
<span class="n">r1d</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">desc</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdDesc</span><span class="p">(),</span> <span class="s2">"Obj2="</span><span class="p">,</span> <span class="s2">"The description was set on Obj2(#</span><span class="si">{}</span><span class="s2">)."</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">oid</span><span class="p">))</span>
|
|
<span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj2</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">desc</span> <span class="o">==</span> <span class="s2">""</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj2</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">desc</span> <span class="o">!=</span> <span class="n">o2d</span>
|
|
<span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">desc</span> <span class="o">==</span> <span class="n">r1d</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_desc_default_to_room"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_desc_default_to_room">[docs]</a> <span class="k">def</span> <span class="nf">test_desc_default_to_room</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sd">"""no rhs changes room's desc"""</span>
|
|
<span class="n">rid</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="o">.</span><span class="n">id</span>
|
|
<span class="n">o2d</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj2</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">desc</span>
|
|
<span class="n">r1d</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">desc</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdDesc</span><span class="p">(),</span> <span class="s2">"Obj2"</span><span class="p">,</span> <span class="s2">"The description was set on Room(#</span><span class="si">{}</span><span class="s2">)."</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">rid</span><span class="p">))</span>
|
|
<span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj2</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">desc</span> <span class="o">==</span> <span class="n">o2d</span>
|
|
<span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">desc</span> <span class="o">==</span> <span class="s2">"Obj2"</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">desc</span> <span class="o">!=</span> <span class="n">r1d</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_destroy"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_destroy">[docs]</a> <span class="k">def</span> <span class="nf">test_destroy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">confirm</span> <span class="o">=</span> <span class="n">building</span><span class="o">.</span><span class="n">CmdDestroy</span><span class="o">.</span><span class="n">confirm</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdDestroy</span><span class="o">.</span><span class="n">confirm</span> <span class="o">=</span> <span class="kc">False</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdDestroy</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdDestroy</span><span class="p">(),</span> <span class="s2">"Obj"</span><span class="p">,</span> <span class="s2">"Obj was destroyed."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdDestroy</span><span class="p">(),</span> <span class="s2">"Obj"</span><span class="p">,</span> <span class="s2">"Obj2 was destroyed."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdDestroy</span><span class="p">(),</span>
|
|
<span class="s2">"Obj"</span><span class="p">,</span>
|
|
<span class="s2">"Could not find 'Obj'.| (Objects to destroy "</span>
|
|
<span class="s2">"must either be local or specified with a unique #dbref.)"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdDestroy</span><span class="p">(),</span> <span class="n">settings</span><span class="o">.</span><span class="n">DEFAULT_HOME</span><span class="p">,</span> <span class="s2">"You are trying to delete"</span>
|
|
<span class="p">)</span> <span class="c1"># DEFAULT_HOME should not be deleted</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char2</span><span class="o">.</span><span class="n">location</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">room2</span>
|
|
<span class="n">charid</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">char2</span><span class="o">.</span><span class="n">id</span>
|
|
<span class="n">room1id</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="o">.</span><span class="n">id</span>
|
|
<span class="n">room2id</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">room2</span><span class="o">.</span><span class="n">id</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdDestroy</span><span class="p">(),</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">room2</span><span class="o">.</span><span class="n">dbref</span><span class="p">,</span>
|
|
<span class="s2">"Char2(#</span><span class="si">{}</span><span class="s2">) arrives to Room(#</span><span class="si">{}</span><span class="s2">) from Room2(#</span><span class="si">{}</span><span class="s2">).|Room2 was destroyed."</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
|
|
<span class="n">charid</span><span class="p">,</span> <span class="n">room1id</span><span class="p">,</span> <span class="n">room2id</span>
|
|
<span class="p">),</span>
|
|
<span class="p">)</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdDestroy</span><span class="o">.</span><span class="n">confirm</span> <span class="o">=</span> <span class="n">confirm</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_destroy_sequence"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_destroy_sequence">[docs]</a> <span class="k">def</span> <span class="nf">test_destroy_sequence</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">confirm</span> <span class="o">=</span> <span class="n">building</span><span class="o">.</span><span class="n">CmdDestroy</span><span class="o">.</span><span class="n">confirm</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdDestroy</span><span class="o">.</span><span class="n">confirm</span> <span class="o">=</span> <span class="kc">False</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdDestroy</span><span class="p">(),</span>
|
|
<span class="s2">"</span><span class="si">{}</span><span class="s2">-</span><span class="si">{}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">obj1</span><span class="o">.</span><span class="n">dbref</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj2</span><span class="o">.</span><span class="n">dbref</span><span class="p">),</span>
|
|
<span class="s2">"Obj was destroyed.</span><span class="se">\n</span><span class="s2">Obj2 was destroyed."</span><span class="p">,</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_dig"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_dig">[docs]</a> <span class="k">def</span> <span class="nf">test_dig</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdDig</span><span class="p">(),</span> <span class="s2">"TestRoom1=testroom;tr,back;b"</span><span class="p">,</span> <span class="s2">"Created room TestRoom1"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdDig</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_tunnel"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_tunnel">[docs]</a> <span class="k">def</span> <span class="nf">test_tunnel</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTunnel</span><span class="p">(),</span> <span class="s2">"n = TestRoom2;test2"</span><span class="p">,</span> <span class="s2">"Created room TestRoom2"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTunnel</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTunnel</span><span class="p">(),</span> <span class="s2">"foo = TestRoom2;test2"</span><span class="p">,</span> <span class="s2">"tunnel can only understand the"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTunnel</span><span class="p">(),</span> <span class="s2">"/tel e = TestRoom3;test3"</span><span class="p">,</span> <span class="s2">"Created room TestRoom3"</span><span class="p">)</span>
|
|
<span class="n">DefaultRoom</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">get_family</span><span class="p">(</span><span class="n">db_key</span><span class="o">=</span><span class="s2">"TestRoom3"</span><span class="p">)</span>
|
|
<span class="n">exits</span> <span class="o">=</span> <span class="n">DefaultExit</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter_family</span><span class="p">(</span><span class="n">db_key__in</span><span class="o">=</span><span class="p">(</span><span class="s2">"east"</span><span class="p">,</span> <span class="s2">"west"</span><span class="p">))</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">exits</span><span class="p">),</span> <span class="mi">2</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_tunnel_exit_typeclass"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_tunnel_exit_typeclass">[docs]</a> <span class="k">def</span> <span class="nf">test_tunnel_exit_typeclass</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTunnel</span><span class="p">(),</span>
|
|
<span class="s2">"n:evennia.objects.objects.DefaultExit = TestRoom3"</span><span class="p">,</span>
|
|
<span class="s2">"Created room TestRoom3"</span><span class="p">,</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_exit_commands"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_exit_commands">[docs]</a> <span class="k">def</span> <span class="nf">test_exit_commands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdOpen</span><span class="p">(),</span> <span class="s2">"TestExit1=Room2"</span><span class="p">,</span> <span class="s2">"Created new Exit 'TestExit1' from Room to Room2"</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdLink</span><span class="p">(),</span> <span class="s2">"TestExit1=Room"</span><span class="p">,</span> <span class="s2">"Link created TestExit1 -> Room (one way)."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdUnLink</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdLink</span><span class="p">(),</span> <span class="s2">"NotFound"</span><span class="p">,</span> <span class="s2">"Could not find 'NotFound'."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdLink</span><span class="p">(),</span> <span class="s2">"TestExit"</span><span class="p">,</span> <span class="s2">"TestExit1 is an exit to Room."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdLink</span><span class="p">(),</span> <span class="s2">"Obj"</span><span class="p">,</span> <span class="s2">"Obj is not an exit. Its home location is Room."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdUnLink</span><span class="p">(),</span> <span class="s2">"TestExit1"</span><span class="p">,</span> <span class="s2">"Former exit TestExit1 no longer links anywhere."</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">location</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">room2</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdOpen</span><span class="p">(),</span> <span class="s2">"TestExit2=Room"</span><span class="p">,</span> <span class="s2">"Created new Exit 'TestExit2' from Room2 to Room."</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdOpen</span><span class="p">(),</span>
|
|
<span class="s2">"TestExit2=Room"</span><span class="p">,</span>
|
|
<span class="s2">"Exit TestExit2 already exists. It already points to the correct place."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="c1"># ensure it matches locally first</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdLink</span><span class="p">(),</span> <span class="s2">"TestExit=Room2"</span><span class="p">,</span> <span class="s2">"Link created TestExit2 -> Room2 (one way)."</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdLink</span><span class="p">(),</span>
|
|
<span class="s2">"/twoway TestExit=</span><span class="si">{}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="o">.</span><span class="n">dbref</span><span class="p">),</span>
|
|
<span class="s2">"Link created TestExit2 (in Room2) <-> out (in Room) (two-way)."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdLink</span><span class="p">(),</span>
|
|
<span class="s2">"/twoway TestExit=</span><span class="si">{}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="o">.</span><span class="n">dbref</span><span class="p">),</span>
|
|
<span class="s2">"To create a two-way link, TestExit2 and Room must both have a location "</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdLink</span><span class="p">(),</span>
|
|
<span class="s2">"/twoway </span><span class="si">{}</span><span class="s2">=</span><span class="si">{}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="o">.</span><span class="n">dbref</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="o">.</span><span class="n">dbref</span><span class="p">),</span>
|
|
<span class="s2">"Cannot link an object to itself."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdLink</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
<span class="c1"># ensure can still match globally when not a local name</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdLink</span><span class="p">(),</span> <span class="s2">"TestExit1=Room2"</span><span class="p">,</span> <span class="s2">"Note: TestExit1"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdLink</span><span class="p">(),</span> <span class="s2">"TestExit1="</span><span class="p">,</span> <span class="s2">"Former exit TestExit1 no longer links anywhere."</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_set_home"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_set_home">[docs]</a> <span class="k">def</span> <span class="nf">test_set_home</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetHome</span><span class="p">(),</span> <span class="s2">"Obj = Room2"</span><span class="p">,</span> <span class="s2">"Home location of Obj was changed from Room"</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetHome</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetHome</span><span class="p">(),</span> <span class="s2">"self"</span><span class="p">,</span> <span class="s2">"Char's current home is Room"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetHome</span><span class="p">(),</span> <span class="s2">"Obj"</span><span class="p">,</span> <span class="s2">"Obj's current home is Room2"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">obj1</span><span class="o">.</span><span class="n">home</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetHome</span><span class="p">(),</span> <span class="s2">"Obj = Room2"</span><span class="p">,</span> <span class="s2">"Home location of Obj was set to Room"</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_list_cmdsets"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_list_cmdsets">[docs]</a> <span class="k">def</span> <span class="nf">test_list_cmdsets</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdListCmdSets</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span>
|
|
<span class="s2">"<CmdSetHandler> stack:</span><span class="se">\n</span><span class="s2"> <CmdSet DefaultCharacter, Union, perm, prio 0>:"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdListCmdSets</span><span class="p">(),</span> <span class="s2">"NotFound"</span><span class="p">,</span> <span class="s2">"Could not find 'NotFound'"</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_typeclass"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_typeclass">[docs]</a> <span class="k">def</span> <span class="nf">test_typeclass</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTypeclass</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTypeclass</span><span class="p">(),</span>
|
|
<span class="s2">"Obj = evennia.objects.objects.DefaultExit"</span><span class="p">,</span>
|
|
<span class="s2">"Obj changed typeclass from evennia.objects.objects.DefaultObject "</span>
|
|
<span class="s2">"to evennia.objects.objects.DefaultExit."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTypeclass</span><span class="p">(),</span>
|
|
<span class="s2">"Obj2 = evennia.objects.objects.DefaultExit"</span><span class="p">,</span>
|
|
<span class="s2">"Obj2 changed typeclass from evennia.objects.objects.DefaultObject "</span>
|
|
<span class="s2">"to evennia.objects.objects.DefaultExit."</span><span class="p">,</span>
|
|
<span class="n">cmdstring</span><span class="o">=</span><span class="s2">"swap"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTypeclass</span><span class="p">(),</span> <span class="s2">"/list Obj"</span><span class="p">,</span> <span class="s2">"Core typeclasses"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTypeclass</span><span class="p">(),</span>
|
|
<span class="s2">"/show Obj"</span><span class="p">,</span>
|
|
<span class="s2">"Obj's current typeclass is 'evennia.objects.objects.DefaultExit'"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTypeclass</span><span class="p">(),</span>
|
|
<span class="s2">"Obj = evennia.objects.objects.DefaultExit"</span><span class="p">,</span>
|
|
<span class="s2">"Obj already has the typeclass 'evennia.objects.objects.DefaultExit'. Use /force to override."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTypeclass</span><span class="p">(),</span>
|
|
<span class="s2">"/force Obj = evennia.objects.objects.DefaultExit"</span><span class="p">,</span>
|
|
<span class="s2">"Obj updated its existing typeclass "</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTypeclass</span><span class="p">(),</span> <span class="s2">"Obj = evennia.objects.objects.DefaultObject"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTypeclass</span><span class="p">(),</span>
|
|
<span class="s2">"/show Obj"</span><span class="p">,</span>
|
|
<span class="s2">"Obj's current typeclass is 'evennia.objects.objects.DefaultObject'"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTypeclass</span><span class="p">(),</span>
|
|
<span class="s2">"Obj"</span><span class="p">,</span>
|
|
<span class="s2">"Obj updated its existing typeclass (evennia.objects.objects.DefaultObject).</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="s2">"Only the at_object_creation hook was run (update mode). Attributes set before swap were not removed."</span><span class="p">,</span>
|
|
<span class="n">cmdstring</span><span class="o">=</span><span class="s2">"update"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTypeclass</span><span class="p">(),</span>
|
|
<span class="s2">"/reset/force Obj=evennia.objects.objects.DefaultObject"</span><span class="p">,</span>
|
|
<span class="s2">"Obj updated its existing typeclass (evennia.objects.objects.DefaultObject).</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="s2">"All object creation hooks were run. All old attributes where deleted before the swap."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="kn">from</span> <span class="nn">evennia.prototypes.prototypes</span> <span class="kn">import</span> <span class="n">homogenize_prototype</span>
|
|
|
|
<span class="n">test_prototype</span> <span class="o">=</span> <span class="p">[</span>
|
|
<span class="n">homogenize_prototype</span><span class="p">(</span>
|
|
<span class="p">{</span>
|
|
<span class="s2">"prototype_key"</span><span class="p">:</span> <span class="s2">"testkey"</span><span class="p">,</span>
|
|
<span class="s2">"prototype_tags"</span><span class="p">:</span> <span class="p">[],</span>
|
|
<span class="s2">"typeclass"</span><span class="p">:</span> <span class="s2">"typeclasses.objects.Object"</span><span class="p">,</span>
|
|
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"replaced_obj"</span><span class="p">,</span>
|
|
<span class="s2">"attrs"</span><span class="p">:</span> <span class="p">[(</span><span class="s2">"foo"</span><span class="p">,</span> <span class="s2">"bar"</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="s2">""</span><span class="p">),</span> <span class="p">(</span><span class="s2">"desc"</span><span class="p">,</span> <span class="s2">"protdesc"</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="s2">""</span><span class="p">)],</span>
|
|
<span class="p">}</span>
|
|
<span class="p">)</span>
|
|
<span class="p">]</span>
|
|
<span class="k">with</span> <span class="n">patch</span><span class="p">(</span>
|
|
<span class="s2">"evennia.commands.default.building.protlib.search_prototype"</span><span class="p">,</span>
|
|
<span class="n">new</span><span class="o">=</span><span class="n">MagicMock</span><span class="p">(</span><span class="n">return_value</span><span class="o">=</span><span class="n">test_prototype</span><span class="p">),</span>
|
|
<span class="p">)</span> <span class="k">as</span> <span class="n">mprot</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTypeclass</span><span class="p">(),</span>
|
|
<span class="s2">"/prototype Obj=testkey"</span><span class="p">,</span>
|
|
<span class="s2">"replaced_obj changed typeclass from "</span>
|
|
<span class="s2">"evennia.objects.objects.DefaultObject to "</span>
|
|
<span class="s2">"typeclasses.objects.Object.</span><span class="se">\n</span><span class="s2">All object creation hooks were "</span>
|
|
<span class="s2">"run. Attributes set before swap were not removed. Prototype "</span>
|
|
<span class="s2">"'replaced_obj' was successfully applied over the object type."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj1</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">desc</span> <span class="o">==</span> <span class="s2">"protdesc"</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_lock"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_lock">[docs]</a> <span class="k">def</span> <span class="nf">test_lock</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdLock</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdLock</span><span class="p">(),</span> <span class="s2">"Obj = test:all()"</span><span class="p">,</span> <span class="s2">"Added lock 'test:all()' to Obj."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdLock</span><span class="p">(),</span>
|
|
<span class="s2">"*TestAccount = test:all()"</span><span class="p">,</span>
|
|
<span class="s2">"Added lock 'test:all()' to TestAccount"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdLock</span><span class="p">(),</span> <span class="s2">"Obj/notfound"</span><span class="p">,</span> <span class="s2">"Obj has no lock of access type 'notfound'."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdLock</span><span class="p">(),</span> <span class="s2">"Obj/test"</span><span class="p">,</span> <span class="s2">"test:all()"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdLock</span><span class="p">(),</span>
|
|
<span class="s2">"/view Obj = edit:false()"</span><span class="p">,</span>
|
|
<span class="s2">"Switch(es) view can not be used with a lock assignment. "</span>
|
|
<span class="s2">"Use e.g. lock/del objname/locktype instead."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdLock</span><span class="p">(),</span> <span class="s2">"Obj = control:false()"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdLock</span><span class="p">(),</span> <span class="s2">"Obj = edit:false()"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdLock</span><span class="p">(),</span> <span class="s2">"Obj/test"</span><span class="p">,</span> <span class="s2">"You are not allowed to do that."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">obj1</span><span class="o">.</span><span class="n">locks</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">"control:true()"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdLock</span><span class="p">(),</span> <span class="s2">"Obj"</span><span class="p">,</span> <span class="s2">"call:true()"</span><span class="p">)</span> <span class="c1"># etc</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdLock</span><span class="p">(),</span> <span class="s2">"*TestAccount"</span><span class="p">,</span> <span class="s2">"boot:perm(Admin)"</span><span class="p">)</span> <span class="c1"># etc</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_find"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_find">[docs]</a> <span class="k">def</span> <span class="nf">test_find</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">rid2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">room2</span><span class="o">.</span><span class="n">id</span>
|
|
<span class="n">rmax</span> <span class="o">=</span> <span class="n">rid2</span> <span class="o">+</span> <span class="mi">100</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"oom2"</span><span class="p">,</span> <span class="s2">"One Match"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"oom2 = 1-</span><span class="si">{}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">rmax</span><span class="p">),</span> <span class="s2">"One Match"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"oom2 = 1 </span><span class="si">{}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">rmax</span><span class="p">),</span> <span class="s2">"One Match"</span><span class="p">)</span> <span class="c1"># space works too</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"Char2"</span><span class="p">,</span> <span class="s2">"One Match"</span><span class="p">,</span> <span class="n">cmdstring</span><span class="o">=</span><span class="s2">"locate"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span>
|
|
<span class="s2">"/ex Char2"</span><span class="p">,</span> <span class="c1"># /ex is an ambiguous switch</span>
|
|
<span class="s2">"locate: Ambiguous switch supplied: Did you mean /exit or /exact?|"</span><span class="p">,</span>
|
|
<span class="n">cmdstring</span><span class="o">=</span><span class="s2">"locate"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"Char2"</span><span class="p">,</span> <span class="s2">"One Match"</span><span class="p">,</span> <span class="n">cmdstring</span><span class="o">=</span><span class="s2">"locate"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"/l Char2"</span><span class="p">,</span> <span class="s2">"One Match"</span><span class="p">,</span> <span class="n">cmdstring</span><span class="o">=</span><span class="s2">"find"</span>
|
|
<span class="p">)</span> <span class="c1"># /l switch is abbreviated form of /loc</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"Char2"</span><span class="p">,</span> <span class="s2">"One Match"</span><span class="p">,</span> <span class="n">cmdstring</span><span class="o">=</span><span class="s2">"find"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"/startswith Room2"</span><span class="p">,</span> <span class="s2">"One Match"</span><span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">dbref</span><span class="p">,</span> <span class="s2">"Exact dbref match"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"*TestAccount"</span><span class="p">,</span> <span class="s2">"Match"</span><span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"/char Obj"</span><span class="p">,</span> <span class="s2">"No Matches"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"/room Obj"</span><span class="p">,</span> <span class="s2">"No Matches"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"/exit Obj"</span><span class="p">,</span> <span class="s2">"No Matches"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"/exact Obj"</span><span class="p">,</span> <span class="s2">"One Match"</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Test multitype filtering</span>
|
|
<span class="k">with</span> <span class="n">patch</span><span class="p">(</span>
|
|
<span class="s2">"evennia.commands.default.building.CHAR_TYPECLASS"</span><span class="p">,</span>
|
|
<span class="s2">"evennia.objects.objects.DefaultCharacter"</span><span class="p">,</span>
|
|
<span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"/char/room Obj"</span><span class="p">,</span> <span class="s2">"No Matches"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"/char/room/exit Char"</span><span class="p">,</span> <span class="s2">"2 Matches"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"/char/room/exit/startswith Cha"</span><span class="p">,</span> <span class="s2">"2 Matches"</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Test null search</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"="</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Test bogus dbref range with no search term</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"= obj"</span><span class="p">,</span> <span class="s2">"Invalid dbref range provided (not a number)."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="s2">"= #1a"</span><span class="p">,</span> <span class="s2">"Invalid dbref range provided (not a number)."</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Test valid dbref ranges with no search term</span>
|
|
<span class="n">id1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj1</span><span class="o">.</span><span class="n">id</span>
|
|
<span class="n">id2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj2</span><span class="o">.</span><span class="n">id</span>
|
|
<span class="n">maxid</span> <span class="o">=</span> <span class="n">ObjectDB</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">latest</span><span class="p">(</span><span class="s2">"id"</span><span class="p">)</span><span class="o">.</span><span class="n">id</span>
|
|
<span class="n">maxdiff</span> <span class="o">=</span> <span class="n">maxid</span> <span class="o">-</span> <span class="n">id1</span> <span class="o">+</span> <span class="mi">1</span>
|
|
<span class="n">mdiff</span> <span class="o">=</span> <span class="n">id2</span> <span class="o">-</span> <span class="n">id1</span> <span class="o">+</span> <span class="mi">1</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="sa">f</span><span class="s2">"=#</span><span class="si">{</span><span class="n">id1</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">maxdiff</span><span class="si">}</span><span class="s2"> Matches(#</span><span class="si">{</span><span class="n">id1</span><span class="si">}</span><span class="s2">-#</span><span class="si">{</span><span class="n">maxid</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="sa">f</span><span class="s2">"=</span><span class="si">{</span><span class="n">id1</span><span class="si">}</span><span class="s2">-</span><span class="si">{</span><span class="n">id2</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">mdiff</span><span class="si">}</span><span class="s2"> Matches(#</span><span class="si">{</span><span class="n">id1</span><span class="si">}</span><span class="s2">-#</span><span class="si">{</span><span class="n">id2</span><span class="si">}</span><span class="s2">):"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="sa">f</span><span class="s2">"=</span><span class="si">{</span><span class="n">id1</span><span class="si">}</span><span class="s2"> - </span><span class="si">{</span><span class="n">id2</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">mdiff</span><span class="si">}</span><span class="s2"> Matches(#</span><span class="si">{</span><span class="n">id1</span><span class="si">}</span><span class="s2">-#</span><span class="si">{</span><span class="n">id2</span><span class="si">}</span><span class="s2">):"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="sa">f</span><span class="s2">"=</span><span class="si">{</span><span class="n">id1</span><span class="si">}</span><span class="s2">- #</span><span class="si">{</span><span class="n">id2</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">mdiff</span><span class="si">}</span><span class="s2"> Matches(#</span><span class="si">{</span><span class="n">id1</span><span class="si">}</span><span class="s2">-#</span><span class="si">{</span><span class="n">id2</span><span class="si">}</span><span class="s2">):"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="sa">f</span><span class="s2">"=</span><span class="si">{</span><span class="n">id1</span><span class="si">}</span><span class="s2">-#</span><span class="si">{</span><span class="n">id2</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">mdiff</span><span class="si">}</span><span class="s2"> Matches(#</span><span class="si">{</span><span class="n">id1</span><span class="si">}</span><span class="s2">-#</span><span class="si">{</span><span class="n">id2</span><span class="si">}</span><span class="s2">):"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdFind</span><span class="p">(),</span> <span class="sa">f</span><span class="s2">"=#</span><span class="si">{</span><span class="n">id1</span><span class="si">}</span><span class="s2">-</span><span class="si">{</span><span class="n">id2</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">mdiff</span><span class="si">}</span><span class="s2"> Matches(#</span><span class="si">{</span><span class="n">id1</span><span class="si">}</span><span class="s2">-#</span><span class="si">{</span><span class="n">id2</span><span class="si">}</span><span class="s2">):"</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_script"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_script">[docs]</a> <span class="k">def</span> <span class="nf">test_script</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdScripts</span><span class="p">(),</span> <span class="s2">"Obj"</span><span class="p">,</span> <span class="s2">"No scripts defined on Obj"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdScripts</span><span class="p">(),</span>
|
|
<span class="s2">"Obj = scripts.Script"</span><span class="p">,</span>
|
|
<span class="s2">"Script scripts.Script successfully added"</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdScripts</span><span class="p">(),</span>
|
|
<span class="s2">"evennia.Dummy"</span><span class="p">,</span>
|
|
<span class="s2">"Global Script NOT Created "</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdScripts</span><span class="p">(),</span>
|
|
<span class="s2">"evennia.scripts.scripts.DoNothing"</span><span class="p">,</span>
|
|
<span class="s2">"Global Script Created - sys_do_nothing "</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdScripts</span><span class="p">(),</span> <span class="s2">"Obj "</span><span class="p">,</span> <span class="s2">"dbref "</span><span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdScripts</span><span class="p">(),</span> <span class="s2">"/start Obj"</span><span class="p">,</span> <span class="s2">"Script on Obj Started "</span>
|
|
<span class="p">)</span> <span class="c1"># we allow running start again; this should still happen</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdScripts</span><span class="p">(),</span> <span class="s2">"/stop Obj"</span><span class="p">,</span> <span class="s2">"Script on Obj Stopped - "</span><span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdScripts</span><span class="p">(),</span> <span class="s2">"Obj = scripts.Script"</span><span class="p">,</span>
|
|
<span class="s2">"Script scripts.Script successfully added"</span><span class="p">,</span>
|
|
<span class="n">inputs</span><span class="o">=</span><span class="p">[</span><span class="s2">"Y"</span><span class="p">]</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdScripts</span><span class="p">(),</span>
|
|
<span class="s2">"/start Obj = scripts.Script"</span><span class="p">,</span>
|
|
<span class="s2">"Script on Obj Started "</span><span class="p">,</span>
|
|
<span class="n">inputs</span><span class="o">=</span><span class="p">[</span><span class="s2">"Y"</span><span class="p">]</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdScripts</span><span class="p">(),</span>
|
|
<span class="s2">"/stop Obj = scripts.Script"</span><span class="p">,</span>
|
|
<span class="s2">"Script on Obj Stopped "</span><span class="p">,</span>
|
|
<span class="n">inputs</span><span class="o">=</span><span class="p">[</span><span class="s2">"Y"</span><span class="p">]</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdScripts</span><span class="p">(),</span>
|
|
<span class="s2">"/delete Obj = scripts.Script"</span><span class="p">,</span>
|
|
<span class="s2">"Script on Obj Deleted "</span><span class="p">,</span>
|
|
<span class="n">inputs</span><span class="o">=</span><span class="p">[</span><span class="s2">"Y"</span><span class="p">]</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdScripts</span><span class="p">(),</span>
|
|
<span class="s2">"/delete evennia.scripts.scripts.DoNothing"</span><span class="p">,</span>
|
|
<span class="s2">"Global Script Deleted -"</span>
|
|
<span class="p">)</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_teleport"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_teleport">[docs]</a> <span class="k">def</span> <span class="nf">test_teleport</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">oid</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj1</span><span class="o">.</span><span class="n">id</span>
|
|
<span class="n">rid</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="o">.</span><span class="n">id</span>
|
|
<span class="n">rid2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">room2</span><span class="o">.</span><span class="n">id</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTeleport</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTeleport</span><span class="p">(),</span> <span class="s2">"Obj = Room"</span><span class="p">,</span> <span class="s2">"Obj is already at Room."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTeleport</span><span class="p">(),</span>
|
|
<span class="s2">"Obj = NotFound"</span><span class="p">,</span>
|
|
<span class="s2">"Could not find 'NotFound'.|Destination not found."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTeleport</span><span class="p">(),</span>
|
|
<span class="s2">"Obj = Room2"</span><span class="p">,</span>
|
|
<span class="s2">"Obj(#</span><span class="si">{}</span><span class="s2">) is leaving Room(#</span><span class="si">{}</span><span class="s2">), heading for Room2(#</span><span class="si">{}</span><span class="s2">).|Teleported Obj -> Room2."</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
|
|
<span class="n">oid</span><span class="p">,</span> <span class="n">rid</span><span class="p">,</span> <span class="n">rid2</span>
|
|
<span class="p">),</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTeleport</span><span class="p">(),</span> <span class="s2">"NotFound = Room"</span><span class="p">,</span> <span class="s2">"Could not find 'NotFound'."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTeleport</span><span class="p">(),</span> <span class="s2">"Obj = Obj"</span><span class="p">,</span> <span class="s2">"You can't teleport an object inside of itself!"</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTeleport</span><span class="p">(),</span> <span class="s2">"/tonone Obj2"</span><span class="p">,</span> <span class="s2">"Teleported Obj2 -> None-location."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTeleport</span><span class="p">(),</span> <span class="s2">"/quiet Room2"</span><span class="p">,</span> <span class="s2">"Room2(#</span><span class="si">{}</span><span class="s2">)"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">rid2</span><span class="p">))</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTeleport</span><span class="p">(),</span>
|
|
<span class="s2">"/t"</span><span class="p">,</span> <span class="c1"># /t switch is abbreviated form of /tonone</span>
|
|
<span class="s2">"Cannot teleport a puppeted object (Char, puppeted by TestAccount"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTeleport</span><span class="p">(),</span>
|
|
<span class="s2">"/l Room2"</span><span class="p">,</span> <span class="c1"># /l switch is abbreviated form of /loc</span>
|
|
<span class="s2">"Destination has no location."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTeleport</span><span class="p">(),</span>
|
|
<span class="s2">"/q me to Room2"</span><span class="p">,</span> <span class="c1"># /q switch is abbreviated form of /quiet</span>
|
|
<span class="s2">"Char is already at Room2."</span><span class="p">,</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_tag"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_tag">[docs]</a> <span class="k">def</span> <span class="nf">test_tag</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTag</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"Usage: "</span><span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTag</span><span class="p">(),</span> <span class="s2">"Obj = testtag"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTag</span><span class="p">(),</span> <span class="s2">"Obj = testtag2"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTag</span><span class="p">(),</span> <span class="s2">"Obj = testtag2:category1"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTag</span><span class="p">(),</span> <span class="s2">"Obj = testtag3"</span><span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTag</span><span class="p">(),</span>
|
|
<span class="s2">"Obj"</span><span class="p">,</span>
|
|
<span class="s2">"Tags on Obj: 'testtag', 'testtag2', "</span> <span class="s2">"'testtag2' (category: category1), 'testtag3'"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTag</span><span class="p">(),</span> <span class="s2">"/search NotFound"</span><span class="p">,</span> <span class="s2">"No objects found with tag 'NotFound'."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTag</span><span class="p">(),</span> <span class="s2">"/search testtag"</span><span class="p">,</span> <span class="s2">"Found 1 object with tag 'testtag':"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTag</span><span class="p">(),</span> <span class="s2">"/search testtag2"</span><span class="p">,</span> <span class="s2">"Found 1 object with tag 'testtag2':"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTag</span><span class="p">(),</span>
|
|
<span class="s2">"/search testtag2:category1"</span><span class="p">,</span>
|
|
<span class="s2">"Found 1 object with tag 'testtag2' (category: 'category1'):"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTag</span><span class="p">(),</span> <span class="s2">"/del Obj = testtag3"</span><span class="p">,</span> <span class="s2">"Removed tag 'testtag3' from Obj."</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdTag</span><span class="p">(),</span>
|
|
<span class="s2">"/del Obj"</span><span class="p">,</span>
|
|
<span class="s2">"Cleared all tags from Obj: testtag, testtag2, testtag2 (category: category1)"</span><span class="p">,</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestBuilding.test_spawn"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_spawn">[docs]</a> <span class="k">def</span> <span class="nf">test_spawn</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">def</span> <span class="nf">get_object</span><span class="p">(</span><span class="n">commandTest</span><span class="p">,</span> <span class="n">obj_key</span><span class="p">):</span>
|
|
<span class="c1"># A helper function to get a spawned object and</span>
|
|
<span class="c1"># check that it exists in the process.</span>
|
|
<span class="n">query</span> <span class="o">=</span> <span class="n">search_object</span><span class="p">(</span><span class="n">obj_key</span><span class="p">)</span>
|
|
<span class="n">commandTest</span><span class="o">.</span><span class="n">assertIsNotNone</span><span class="p">(</span><span class="n">query</span><span class="p">)</span>
|
|
<span class="n">commandTest</span><span class="o">.</span><span class="n">assertTrue</span><span class="p">(</span><span class="nb">bool</span><span class="p">(</span><span class="n">query</span><span class="p">))</span>
|
|
<span class="n">obj</span> <span class="o">=</span> <span class="n">query</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
|
<span class="n">commandTest</span><span class="o">.</span><span class="n">assertIsNotNone</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">obj</span>
|
|
|
|
<span class="c1"># Tests "spawn" without any arguments.</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span> <span class="s2">" "</span><span class="p">,</span> <span class="s2">"Usage: spawn"</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Tests "spawn <prototype_dictionary>" without specifying location.</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span>
|
|
<span class="s2">"/save {'prototype_key': 'testprot', 'key':'Test Char', "</span>
|
|
<span class="s2">"'typeclass':'evennia.objects.objects.DefaultCharacter'}"</span><span class="p">,</span>
|
|
<span class="s2">"Saved prototype: testprot"</span><span class="p">,</span>
|
|
<span class="n">inputs</span><span class="o">=</span><span class="p">[</span><span class="s2">"y"</span><span class="p">],</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span>
|
|
<span class="s2">"/save testprot2 = {'key':'Test Char', "</span>
|
|
<span class="s2">"'typeclass':'evennia.objects.objects.DefaultCharacter'}"</span><span class="p">,</span>
|
|
<span class="s2">"(Replacing `prototype_key` in prototype with given key.)|Saved prototype: testprot2"</span><span class="p">,</span>
|
|
<span class="n">inputs</span><span class="o">=</span><span class="p">[</span><span class="s2">"y"</span><span class="p">],</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span> <span class="s2">"/search "</span><span class="p">,</span> <span class="s2">"Key "</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span> <span class="s2">"/search test;test2"</span><span class="p">,</span> <span class="s2">"No prototypes found."</span><span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span>
|
|
<span class="s2">"/save {'key':'Test Char', "</span> <span class="s2">"'typeclass':'evennia.objects.objects.DefaultCharacter'}"</span><span class="p">,</span>
|
|
<span class="s2">"A prototype_key must be given, either as `prototype_key = <prototype>` or as "</span>
|
|
<span class="s2">"a key 'prototype_key' inside the prototype structure."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span> <span class="s2">"/list"</span><span class="p">,</span> <span class="s2">"Key "</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span> <span class="s2">"testprot"</span><span class="p">,</span> <span class="s2">"Spawned Test Char"</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Tests that the spawned object's location is the same as the character's location, since</span>
|
|
<span class="c1"># we did not specify it.</span>
|
|
<span class="n">testchar</span> <span class="o">=</span> <span class="n">get_object</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">"Test Char"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="n">testchar</span><span class="o">.</span><span class="n">location</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">location</span><span class="p">)</span>
|
|
<span class="n">testchar</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span>
|
|
|
|
<span class="c1"># Test "spawn <prototype_dictionary>" with a location other than the character's.</span>
|
|
<span class="n">spawnLoc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">room2</span>
|
|
<span class="k">if</span> <span class="n">spawnLoc</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">location</span><span class="p">:</span>
|
|
<span class="c1"># Just to make sure we use a different location, in case someone changes</span>
|
|
<span class="c1"># char1's default location in the future...</span>
|
|
<span class="n">spawnLoc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">room1</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span>
|
|
<span class="s2">"{'prototype_key':'GOBLIN', 'typeclass':'evennia.objects.objects.DefaultCharacter', "</span>
|
|
<span class="s2">"'key':'goblin', 'location':'</span><span class="si">%s</span><span class="s2">'}"</span> <span class="o">%</span> <span class="n">spawnLoc</span><span class="o">.</span><span class="n">dbref</span><span class="p">,</span>
|
|
<span class="s2">"Spawned goblin"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="n">goblin</span> <span class="o">=</span> <span class="n">get_object</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">"goblin"</span><span class="p">)</span>
|
|
<span class="c1"># Tests that the spawned object's type is a DefaultCharacter.</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIsInstance</span><span class="p">(</span><span class="n">goblin</span><span class="p">,</span> <span class="n">DefaultCharacter</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="n">goblin</span><span class="o">.</span><span class="n">location</span><span class="p">,</span> <span class="n">spawnLoc</span><span class="p">)</span>
|
|
|
|
<span class="n">goblin</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span>
|
|
|
|
<span class="c1"># create prototype</span>
|
|
<span class="n">protlib</span><span class="o">.</span><span class="n">create_prototype</span><span class="p">(</span>
|
|
<span class="p">{</span>
|
|
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"Ball"</span><span class="p">,</span>
|
|
<span class="s2">"typeclass"</span><span class="p">:</span> <span class="s2">"evennia.objects.objects.DefaultCharacter"</span><span class="p">,</span>
|
|
<span class="s2">"prototype_key"</span><span class="p">:</span> <span class="s2">"testball"</span><span class="p">,</span>
|
|
<span class="p">}</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="c1"># Tests "spawn <prototype_name>"</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span> <span class="s2">"testball"</span><span class="p">,</span> <span class="s2">"Spawned Ball"</span><span class="p">)</span>
|
|
|
|
<span class="n">ball</span> <span class="o">=</span> <span class="n">get_object</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">"Ball"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="n">ball</span><span class="o">.</span><span class="n">location</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">location</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIsInstance</span><span class="p">(</span><span class="n">ball</span><span class="p">,</span> <span class="n">DefaultObject</span><span class="p">)</span>
|
|
<span class="n">ball</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span>
|
|
|
|
<span class="c1"># Tests "spawn/n ..." without specifying a location.</span>
|
|
<span class="c1"># Location should be "None".</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span> <span class="s2">"/n 'BALL'"</span><span class="p">,</span> <span class="s2">"Spawned Ball"</span>
|
|
<span class="p">)</span> <span class="c1"># /n switch is abbreviated form of /noloc</span>
|
|
<span class="n">ball</span> <span class="o">=</span> <span class="n">get_object</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">"Ball"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIsNone</span><span class="p">(</span><span class="n">ball</span><span class="o">.</span><span class="n">location</span><span class="p">)</span>
|
|
<span class="n">ball</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span>
|
|
<span class="s2">"/noloc {'prototype_parent':'TESTBALL', 'prototype_key': 'testball', 'location':'</span><span class="si">%s</span><span class="s2">'}"</span>
|
|
<span class="o">%</span> <span class="n">spawnLoc</span><span class="o">.</span><span class="n">dbref</span><span class="p">,</span>
|
|
<span class="s2">"Error: Prototype testball tries to parent itself."</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="c1"># Tests "spawn/noloc ...", but DO specify a location.</span>
|
|
<span class="c1"># Location should be the specified location.</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span>
|
|
<span class="s2">"/noloc {'prototype_parent':'TESTBALL', 'key': 'Ball', 'prototype_key': 'foo', 'location':'</span><span class="si">%s</span><span class="s2">'}"</span>
|
|
<span class="o">%</span> <span class="n">spawnLoc</span><span class="o">.</span><span class="n">dbref</span><span class="p">,</span>
|
|
<span class="s2">"Spawned Ball"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="n">ball</span> <span class="o">=</span> <span class="n">get_object</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">"Ball"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="n">ball</span><span class="o">.</span><span class="n">location</span><span class="p">,</span> <span class="n">spawnLoc</span><span class="p">)</span>
|
|
<span class="n">ball</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span>
|
|
|
|
<span class="c1"># test calling spawn with an invalid prototype.</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span> <span class="s2">"'NO_EXIST'"</span><span class="p">,</span> <span class="s2">"No prototype named 'NO_EXIST' was found."</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Test listing commands</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span> <span class="s2">"/list"</span><span class="p">,</span> <span class="s2">"Key "</span><span class="p">)</span>
|
|
|
|
<span class="c1"># spawn/edit (missing prototype)</span>
|
|
<span class="c1"># brings up olc menu</span>
|
|
<span class="n">msg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span> <span class="s2">"/edit"</span><span class="p">)</span>
|
|
<span class="k">assert</span> <span class="s2">"Prototype wizard"</span> <span class="ow">in</span> <span class="n">msg</span>
|
|
|
|
<span class="c1"># spawn/edit with valid prototype</span>
|
|
<span class="c1"># brings up olc menu loaded with prototype</span>
|
|
<span class="n">msg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span> <span class="s2">"/edit testball"</span><span class="p">)</span>
|
|
<span class="k">assert</span> <span class="s2">"Prototype wizard"</span> <span class="ow">in</span> <span class="n">msg</span>
|
|
<span class="k">assert</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">_menutree</span><span class="p">,</span> <span class="s2">"olc_prototype"</span><span class="p">)</span>
|
|
<span class="k">assert</span> <span class="p">(</span>
|
|
<span class="nb">dict</span> <span class="o">==</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">_menutree</span><span class="o">.</span><span class="n">olc_prototype</span><span class="p">)</span>
|
|
<span class="ow">and</span> <span class="s2">"prototype_key"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">_menutree</span><span class="o">.</span><span class="n">olc_prototype</span>
|
|
<span class="ow">and</span> <span class="s2">"key"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">_menutree</span><span class="o">.</span><span class="n">olc_prototype</span>
|
|
<span class="ow">and</span> <span class="s2">"testball"</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">_menutree</span><span class="o">.</span><span class="n">olc_prototype</span><span class="p">[</span><span class="s2">"prototype_key"</span><span class="p">]</span>
|
|
<span class="ow">and</span> <span class="s2">"Ball"</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">_menutree</span><span class="o">.</span><span class="n">olc_prototype</span><span class="p">[</span><span class="s2">"key"</span><span class="p">]</span>
|
|
<span class="p">)</span>
|
|
<span class="k">assert</span> <span class="s2">"Ball"</span> <span class="ow">in</span> <span class="n">msg</span> <span class="ow">and</span> <span class="s2">"testball"</span> <span class="ow">in</span> <span class="n">msg</span>
|
|
|
|
<span class="c1"># spawn/edit with valid prototype (synomym)</span>
|
|
<span class="n">msg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span> <span class="s2">"/edit BALL"</span><span class="p">)</span>
|
|
<span class="k">assert</span> <span class="s2">"Prototype wizard"</span> <span class="ow">in</span> <span class="n">msg</span>
|
|
<span class="k">assert</span> <span class="s2">"Ball"</span> <span class="ow">in</span> <span class="n">msg</span> <span class="ow">and</span> <span class="s2">"testball"</span> <span class="ow">in</span> <span class="n">msg</span>
|
|
|
|
<span class="c1"># spawn/edit with invalid prototype</span>
|
|
<span class="n">msg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span> <span class="s2">"/edit NO_EXISTS"</span><span class="p">,</span> <span class="s2">"No prototype named 'NO_EXISTS' was found."</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="c1"># spawn/examine (missing prototype)</span>
|
|
<span class="c1"># lists all prototypes that exist</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span> <span class="s2">"/examine"</span><span class="p">,</span> <span class="s2">"You need to specify a prototype-key to show."</span><span class="p">)</span>
|
|
|
|
<span class="c1"># spawn/examine with valid prototype</span>
|
|
<span class="c1"># prints the prototype</span>
|
|
<span class="n">msg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span> <span class="s2">"/examine BALL"</span><span class="p">)</span>
|
|
<span class="k">assert</span> <span class="s2">"Ball"</span> <span class="ow">in</span> <span class="n">msg</span> <span class="ow">and</span> <span class="s2">"testball"</span> <span class="ow">in</span> <span class="n">msg</span>
|
|
|
|
<span class="c1"># spawn/examine with invalid prototype</span>
|
|
<span class="c1"># shows error</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdSpawn</span><span class="p">(),</span> <span class="s2">"/examine NO_EXISTS"</span><span class="p">,</span> <span class="s2">"No prototype named 'NO_EXISTS' was found."</span>
|
|
<span class="p">)</span></div></div>
|
|
|
|
|
|
|
|
<span class="kn">from</span> <span class="nn">evennia.utils.create</span> <span class="kn">import</span> <span class="n">create_channel</span> <span class="c1"># noqa</span>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel">[docs]</a><span class="k">class</span> <span class="nc">TestCommsChannel</span><span class="p">(</span><span class="n">CommandTest</span><span class="p">):</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> Test the central `channel` command.</span>
|
|
|
|
<span class="sd"> """</span>
|
|
<div class="viewcode-block" id="TestCommsChannel.setUp"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.setUp">[docs]</a> <span class="k">def</span> <span class="nf">setUp</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="nb">super</span><span class="p">(</span><span class="n">CommandTest</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">setUp</span><span class="p">()</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span> <span class="o">=</span> <span class="n">create_channel</span><span class="p">(</span>
|
|
<span class="n">key</span><span class="o">=</span><span class="s2">"testchannel"</span><span class="p">,</span>
|
|
<span class="n">desc</span><span class="o">=</span><span class="s2">"A test channel"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span> <span class="o">=</span> <span class="n">comms</span><span class="o">.</span><span class="n">CmdChannel</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="o">.</span><span class="n">account_caller</span> <span class="o">=</span> <span class="kc">False</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel.tearDown"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.tearDown">[docs]</a> <span class="k">def</span> <span class="nf">tearDown</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">pk</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span></div>
|
|
|
|
<span class="c1"># test channel command</span>
|
|
<div class="viewcode-block" id="TestCommsChannel.test_channel__noarg"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.test_channel__noarg">[docs]</a> <span class="k">def</span> <span class="nf">test_channel__noarg</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">""</span><span class="p">,</span>
|
|
<span class="s2">"Channel subscriptions"</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel.test_channel__msg"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.test_channel__msg">[docs]</a> <span class="k">def</span> <span class="nf">test_channel__msg</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">msg</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"testchannel = Test message"</span><span class="p">,</span>
|
|
<span class="s2">""</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">msg</span><span class="o">.</span><span class="n">assert_called_with</span><span class="p">(</span><span class="s2">"Test message"</span><span class="p">,</span> <span class="n">senders</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel.test_channel__list"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.test_channel__list">[docs]</a> <span class="k">def</span> <span class="nf">test_channel__list</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"/list"</span><span class="p">,</span>
|
|
<span class="s2">"Channel subscriptions"</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel.test_channel__all"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.test_channel__all">[docs]</a> <span class="k">def</span> <span class="nf">test_channel__all</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"/all"</span><span class="p">,</span>
|
|
<span class="s2">"Available channels"</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel.test_channel__history"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.test_channel__history">[docs]</a> <span class="k">def</span> <span class="nf">test_channel__history</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">with</span> <span class="n">patch</span><span class="p">(</span><span class="s2">"evennia.commands.default.comms.tail_log_file"</span><span class="p">)</span> <span class="k">as</span> <span class="n">mock_tail</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"/history testchannel"</span><span class="p">,</span>
|
|
<span class="s2">""</span>
|
|
<span class="p">)</span>
|
|
<span class="n">mock_tail</span><span class="o">.</span><span class="n">assert_called</span><span class="p">()</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel.test_channel__sub"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.test_channel__sub">[docs]</a> <span class="k">def</span> <span class="nf">test_channel__sub</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">disconnect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"/sub testchannel"</span><span class="p">,</span>
|
|
<span class="s2">"You are now subscribed"</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertTrue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">subscriptions</span><span class="o">.</span><span class="n">all</span><span class="p">())</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">nicks</span><span class="o">.</span><span class="n">nickreplace</span><span class="p">(</span><span class="s2">"testchannel Hello"</span><span class="p">),</span> <span class="s2">"channel testchannel = Hello"</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel.test_channel__unsub"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.test_channel__unsub">[docs]</a> <span class="k">def</span> <span class="nf">test_channel__unsub</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"/unsub testchannel"</span><span class="p">,</span>
|
|
<span class="s2">"You un-subscribed"</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertFalse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">subscriptions</span><span class="o">.</span><span class="n">all</span><span class="p">())</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel.test_channel__alias__unalias"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.test_channel__alias__unalias">[docs]</a> <span class="k">def</span> <span class="nf">test_channel__alias__unalias</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sd">"""Add and then remove a channel alias"""</span>
|
|
<span class="c1"># add alias</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"/alias testchannel = foo"</span><span class="p">,</span>
|
|
<span class="s2">"Added/updated your alias 'foo' for channel testchannel."</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">nicks</span><span class="o">.</span><span class="n">nickreplace</span><span class="p">(</span><span class="s1">'foo Hello'</span><span class="p">),</span> <span class="s2">"channel testchannel = Hello"</span><span class="p">)</span>
|
|
|
|
<span class="c1"># use alias</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">msg</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"foo = test message"</span><span class="p">,</span>
|
|
<span class="s2">""</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">msg</span><span class="o">.</span><span class="n">assert_called_with</span><span class="p">(</span><span class="s2">"test message"</span><span class="p">,</span> <span class="n">senders</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="p">)</span>
|
|
|
|
<span class="c1"># remove alias</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"/unalias foo"</span><span class="p">,</span>
|
|
<span class="s2">"Removed your channel alias 'foo'"</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">nicks</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'foo $1'</span><span class="p">,</span> <span class="n">category</span><span class="o">=</span><span class="s2">"channel"</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel.test_channel__mute"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.test_channel__mute">[docs]</a> <span class="k">def</span> <span class="nf">test_channel__mute</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"/mute testchannel"</span><span class="p">,</span>
|
|
<span class="s2">"Muted channel testchannel"</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertTrue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">mutelist</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel.test_channel__unmute"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.test_channel__unmute">[docs]</a> <span class="k">def</span> <span class="nf">test_channel__unmute</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">mute</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="p">)</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"/unmute testchannel = Char1"</span><span class="p">,</span>
|
|
<span class="s2">"Un-muted channel testchannel"</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertFalse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">mutelist</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel.test_channel__create"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.test_channel__create">[docs]</a> <span class="k">def</span> <span class="nf">test_channel__create</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"/create testchannel2"</span><span class="p">,</span>
|
|
<span class="s2">"Created (and joined) new channel"</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel.test_channel__destroy"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.test_channel__destroy">[docs]</a> <span class="k">def</span> <span class="nf">test_channel__destroy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">msg</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"/destroy testchannel = delete reason"</span><span class="p">,</span>
|
|
<span class="s2">"Are you sure you want to delete channel "</span><span class="p">,</span>
|
|
<span class="n">inputs</span><span class="o">=</span><span class="p">[</span><span class="s1">'Yes'</span><span class="p">]</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">msg</span><span class="o">.</span><span class="n">assert_called_with</span><span class="p">(</span>
|
|
<span class="s2">"delete reason"</span><span class="p">,</span> <span class="n">bypass_mute</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">senders</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel.test_channel__desc"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.test_channel__desc">[docs]</a> <span class="k">def</span> <span class="nf">test_channel__desc</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"/desc testchannel = Another description"</span><span class="p">,</span>
|
|
<span class="s2">"Updated channel description."</span>
|
|
<span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel.test_channel__lock"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.test_channel__lock">[docs]</a> <span class="k">def</span> <span class="nf">test_channel__lock</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"/lock testchannel = foo:false()"</span><span class="p">,</span>
|
|
<span class="s2">"Added/updated lock on channel"</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">locks</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'foo'</span><span class="p">),</span> <span class="s1">'foo:false()'</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel.test_channel__unlock"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.test_channel__unlock">[docs]</a> <span class="k">def</span> <span class="nf">test_channel__unlock</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">locks</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">"foo:true()"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"/unlock testchannel = foo"</span><span class="p">,</span>
|
|
<span class="s2">"Removed lock from channel"</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">locks</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'foo'</span><span class="p">),</span> <span class="s1">''</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel.test_channel__boot"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.test_channel__boot">[docs]</a> <span class="k">def</span> <span class="nf">test_channel__boot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char2</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertTrue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char2</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">subscriptions</span><span class="o">.</span><span class="n">all</span><span class="p">())</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">msg</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char2</span><span class="o">.</span><span class="n">msg</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"/boot testchannel = Char2 : Booting from channel!"</span><span class="p">,</span>
|
|
<span class="s2">"Are you sure "</span><span class="p">,</span>
|
|
<span class="n">inputs</span><span class="o">=</span><span class="p">[</span><span class="s2">"Yes"</span><span class="p">]</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">msg</span><span class="o">.</span><span class="n">assert_called_with</span><span class="p">(</span>
|
|
<span class="s2">"Char2 was booted from channel by Char. Reason: Booting from channel!"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char2</span><span class="o">.</span><span class="n">msg</span><span class="o">.</span><span class="n">assert_called_with</span><span class="p">(</span>
|
|
<span class="s2">"You were booted from channel testchannel by Char. Reason: Booting from channel!"</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel.test_channel__ban__unban"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.test_channel__ban__unban">[docs]</a> <span class="k">def</span> <span class="nf">test_channel__ban__unban</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sd">"""Test first ban and then unban"""</span>
|
|
|
|
<span class="c1"># ban</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char2</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertTrue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char2</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">subscriptions</span><span class="o">.</span><span class="n">all</span><span class="p">())</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">msg</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char2</span><span class="o">.</span><span class="n">msg</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"/ban testchannel = Char2 : Banning from channel!"</span><span class="p">,</span>
|
|
<span class="s2">"Are you sure "</span><span class="p">,</span>
|
|
<span class="n">inputs</span><span class="o">=</span><span class="p">[</span><span class="s2">"Yes"</span><span class="p">]</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">msg</span><span class="o">.</span><span class="n">assert_called_with</span><span class="p">(</span>
|
|
<span class="s2">"Char2 was booted from channel by Char. Reason: Banning from channel!"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char2</span><span class="o">.</span><span class="n">msg</span><span class="o">.</span><span class="n">assert_called_with</span><span class="p">(</span>
|
|
<span class="s2">"You were booted from channel testchannel by Char. Reason: Banning from channel!"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertTrue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char2</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">banlist</span><span class="p">)</span>
|
|
|
|
<span class="c1"># unban</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"/unban testchannel = Char2"</span><span class="p">,</span>
|
|
<span class="s2">"Un-banned Char2 from channel testchannel"</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertFalse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char2</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">banlist</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCommsChannel.test_channel__who"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.test_channel__who">[docs]</a> <span class="k">def</span> <span class="nf">test_channel__who</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="p">(),</span>
|
|
<span class="s2">"/who testchannel"</span><span class="p">,</span>
|
|
<span class="s2">"Subscribed to testchannel:</span><span class="se">\n</span><span class="s2">Char"</span>
|
|
<span class="p">)</span></div></div>
|
|
|
|
|
|
<span class="kn">from</span> <span class="nn">evennia.comms</span> <span class="kn">import</span> <span class="n">comms</span> <span class="c1"># noqa</span>
|
|
|
|
|
|
<div class="viewcode-block" id="TestComms"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestComms">[docs]</a><span class="k">class</span> <span class="nc">TestComms</span><span class="p">(</span><span class="n">CommandTest</span><span class="p">):</span>
|
|
|
|
<div class="viewcode-block" id="TestComms.test_page"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestComms.test_page">[docs]</a> <span class="k">def</span> <span class="nf">test_page</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">comms</span><span class="o">.</span><span class="n">CmdPage</span><span class="p">(),</span>
|
|
<span class="s2">"TestAccount2 = Test"</span><span class="p">,</span>
|
|
<span class="s2">"TestAccount2 is offline. They will see your message if they list their pages later."</span>
|
|
<span class="s2">"|You paged TestAccount2 with: 'Test'."</span><span class="p">,</span>
|
|
<span class="n">receiver</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="p">,</span>
|
|
<span class="p">)</span></div></div>
|
|
|
|
|
|
<div class="viewcode-block" id="TestBatchProcess"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBatchProcess">[docs]</a><span class="k">class</span> <span class="nc">TestBatchProcess</span><span class="p">(</span><span class="n">CommandTest</span><span class="p">):</span>
|
|
|
|
<div class="viewcode-block" id="TestBatchProcess.test_batch_commands"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBatchProcess.test_batch_commands">[docs]</a> <span class="nd">@patch</span><span class="p">(</span><span class="s2">"evennia.contrib.tutorial_examples.red_button.repeat"</span><span class="p">)</span>
|
|
<span class="nd">@patch</span><span class="p">(</span><span class="s2">"evennia.contrib.tutorial_examples.red_button.delay"</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">test_batch_commands</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mock_delay</span><span class="p">,</span> <span class="n">mock_repeat</span><span class="p">):</span>
|
|
<span class="c1"># cannot test batchcode here, it must run inside the server process</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
|
<span class="n">batchprocess</span><span class="o">.</span><span class="n">CmdBatchCommands</span><span class="p">(),</span>
|
|
<span class="s2">"example_batch_cmds"</span><span class="p">,</span>
|
|
<span class="s2">"Running Batch-command processor - Automatic mode for example_batch_cmds"</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="c1"># we make sure to delete the button again here to stop the running reactor</span>
|
|
<span class="n">confirm</span> <span class="o">=</span> <span class="n">building</span><span class="o">.</span><span class="n">CmdDestroy</span><span class="o">.</span><span class="n">confirm</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdDestroy</span><span class="o">.</span><span class="n">confirm</span> <span class="o">=</span> <span class="kc">False</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdDestroy</span><span class="p">(),</span> <span class="s2">"button"</span><span class="p">,</span> <span class="s2">"button was destroyed."</span><span class="p">)</span>
|
|
<span class="n">building</span><span class="o">.</span><span class="n">CmdDestroy</span><span class="o">.</span><span class="n">confirm</span> <span class="o">=</span> <span class="n">confirm</span>
|
|
<span class="n">mock_repeat</span><span class="o">.</span><span class="n">assert_called</span><span class="p">()</span></div></div>
|
|
|
|
|
|
<div class="viewcode-block" id="CmdInterrupt"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.CmdInterrupt">[docs]</a><span class="k">class</span> <span class="nc">CmdInterrupt</span><span class="p">(</span><span class="n">Command</span><span class="p">):</span>
|
|
|
|
<span class="n">key</span> <span class="o">=</span> <span class="s2">"interrupt"</span>
|
|
|
|
<div class="viewcode-block" id="CmdInterrupt.parse"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.CmdInterrupt.parse">[docs]</a> <span class="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="n">InterruptCommand</span></div>
|
|
|
|
<div class="viewcode-block" id="CmdInterrupt.func"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.CmdInterrupt.func">[docs]</a> <span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"in func"</span><span class="p">)</span></div></div>
|
|
|
|
|
|
<div class="viewcode-block" id="TestInterruptCommand"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestInterruptCommand">[docs]</a><span class="k">class</span> <span class="nc">TestInterruptCommand</span><span class="p">(</span><span class="n">CommandTest</span><span class="p">):</span>
|
|
<div class="viewcode-block" id="TestInterruptCommand.test_interrupt_command"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestInterruptCommand.test_interrupt_command">[docs]</a> <span class="k">def</span> <span class="nf">test_interrupt_command</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">ret</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">CmdInterrupt</span><span class="p">(),</span> <span class="s2">""</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span> <span class="s2">""</span><span class="p">)</span></div></div>
|
|
|
|
|
|
<div class="viewcode-block" id="TestUnconnectedCommand"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestUnconnectedCommand">[docs]</a><span class="k">class</span> <span class="nc">TestUnconnectedCommand</span><span class="p">(</span><span class="n">CommandTest</span><span class="p">):</span>
|
|
<div class="viewcode-block" id="TestUnconnectedCommand.test_info_command"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestUnconnectedCommand.test_info_command">[docs]</a> <span class="k">def</span> <span class="nf">test_info_command</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="c1"># instead of using SERVER_START_TIME (0), we use 86400 because Windows won't let us use anything lower</span>
|
|
<span class="n">gametime</span><span class="o">.</span><span class="n">SERVER_START_TIME</span> <span class="o">=</span> <span class="mi">86400</span>
|
|
<span class="n">expected</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s2">"## BEGIN INFO 1.1</span><span class="se">\n</span><span class="s2">Name: </span><span class="si">%s</span><span class="se">\n</span><span class="s2">Uptime: </span><span class="si">%s</span><span class="se">\n</span><span class="s2">Connected: </span><span class="si">%d</span><span class="se">\n</span><span class="s2">Version: Evennia </span><span class="si">%s</span><span class="se">\n</span><span class="s2">## END INFO"</span>
|
|
<span class="o">%</span> <span class="p">(</span>
|
|
<span class="n">settings</span><span class="o">.</span><span class="n">SERVERNAME</span><span class="p">,</span>
|
|
<span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">fromtimestamp</span><span class="p">(</span><span class="n">gametime</span><span class="o">.</span><span class="n">SERVER_START_TIME</span><span class="p">)</span><span class="o">.</span><span class="n">ctime</span><span class="p">(),</span>
|
|
<span class="n">SESSIONS</span><span class="o">.</span><span class="n">account_count</span><span class="p">(),</span>
|
|
<span class="n">utils</span><span class="o">.</span><span class="n">get_evennia_version</span><span class="p">(),</span>
|
|
<span class="p">)</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">unloggedin</span><span class="o">.</span><span class="n">CmdUnconnectedInfo</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="n">expected</span><span class="p">)</span>
|
|
<span class="k">del</span> <span class="n">gametime</span><span class="o">.</span><span class="n">SERVER_START_TIME</span></div></div>
|
|
|
|
|
|
<span class="c1"># Test syscommands</span>
|
|
|
|
|
|
<div class="viewcode-block" id="TestSystemCommands"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestSystemCommands">[docs]</a><span class="k">class</span> <span class="nc">TestSystemCommands</span><span class="p">(</span><span class="n">CommandTest</span><span class="p">):</span>
|
|
<div class="viewcode-block" id="TestSystemCommands.test_simple_defaults"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestSystemCommands.test_simple_defaults">[docs]</a> <span class="k">def</span> <span class="nf">test_simple_defaults</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">syscommands</span><span class="o">.</span><span class="n">SystemNoInput</span><span class="p">(),</span> <span class="s2">""</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">syscommands</span><span class="o">.</span><span class="n">SystemNoMatch</span><span class="p">(),</span> <span class="s2">"Huh?"</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestSystemCommands.test_multimatch"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestSystemCommands.test_multimatch">[docs]</a> <span class="k">def</span> <span class="nf">test_multimatch</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="c1"># set up fake matches and store on command instance</span>
|
|
<span class="n">cmdset</span> <span class="o">=</span> <span class="n">CmdSet</span><span class="p">()</span>
|
|
<span class="n">cmdset</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">general</span><span class="o">.</span><span class="n">CmdLook</span><span class="p">())</span>
|
|
<span class="n">cmdset</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">general</span><span class="o">.</span><span class="n">CmdLook</span><span class="p">())</span>
|
|
<span class="n">matches</span> <span class="o">=</span> <span class="n">cmdparser</span><span class="o">.</span><span class="n">build_matches</span><span class="p">(</span><span class="s2">"look"</span><span class="p">,</span> <span class="n">cmdset</span><span class="p">)</span>
|
|
|
|
<span class="n">multimatch</span> <span class="o">=</span> <span class="n">syscommands</span><span class="o">.</span><span class="n">SystemMultimatch</span><span class="p">()</span>
|
|
<span class="n">multimatch</span><span class="o">.</span><span class="n">matches</span> <span class="o">=</span> <span class="n">matches</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">multimatch</span><span class="p">,</span> <span class="s2">"look"</span><span class="p">,</span> <span class="s2">""</span><span class="p">)</span></div></div>
|
|
</pre></div>
|
|
|
|
<div class="clearer"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
|
<div class="sphinxsidebarwrapper">
|
|
<p class="logo"><a href="../../../../index.html">
|
|
<img class="logo" src="../../../../_static/evennia_logo.png" alt="Logo"/>
|
|
</a></p>
|
|
<div id="searchbox" style="display: none" role="search">
|
|
<h3 id="searchlabel">Quick search</h3>
|
|
<div class="searchformwrapper">
|
|
<form class="search" action="../../../../search.html" method="get">
|
|
<input type="text" name="q" aria-labelledby="searchlabel" />
|
|
<input type="submit" value="Go" />
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<script>$('#searchbox').show(0);</script><h3>Links</h3>
|
|
<ul>
|
|
<li><a href="https://www.evennia.com">Home page</a> </li>
|
|
<li><a href="https://github.com/evennia/evennia">Evennia Github</a> </li>
|
|
<li><a href="http://games.evennia.com">Game Index</a> </li>
|
|
<li>
|
|
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
|
|
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
|
|
<a href="https://evennia.blogspot.com/">Blog</a>
|
|
</li>
|
|
</ul>
|
|
<h3>Versions</h3>
|
|
<ul>
|
|
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
|
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
|
</ul>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="clearer"></div>
|
|
</div>
|
|
<div class="related" role="navigation" aria-label="related navigation">
|
|
<h3>Navigation</h3>
|
|
<ul>
|
|
<li class="right" style="margin-right: 10px">
|
|
<a href="../../../../genindex.html" title="General Index"
|
|
>index</a></li>
|
|
<li class="right" >
|
|
<a href="../../../../py-modindex.html" title="Python Module Index"
|
|
>modules</a> |</li>
|
|
<li class="nav-item nav-item-0"><a href="../../../../index.html">Evennia 1.0-dev</a> »</li>
|
|
<li class="nav-item nav-item-1"><a href="../../../index.html" >Module code</a> »</li>
|
|
<li class="nav-item nav-item-2"><a href="../../../evennia.html" >evennia</a> »</li>
|
|
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.tests</a></li>
|
|
</ul>
|
|
<div class="develop">develop branch</div>
|
|
</div>
|
|
<div class="footer" role="contentinfo">
|
|
© Copyright 2020, The Evennia developer community.
|
|
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
|
|
</div>
|
|
</body>
|
|
</html> |