mirror of
https://github.com/evennia/evennia.git
synced 2026-04-03 22:47:16 +02:00
636 lines
No EOL
107 KiB
HTML
636 lines
No EOL
107 KiB
HTML
|
|
<!DOCTYPE html>
|
|
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>evennia.contrib.ingame_python.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>
|
|
<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.contrib.ingame_python.tests</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="document">
|
|
<div class="documentwrapper">
|
|
<div class="bodywrapper">
|
|
<div class="body" role="main">
|
|
|
|
<h1>Source code for evennia.contrib.ingame_python.tests</h1><div class="highlight"><pre>
|
|
<span></span><span class="sd">"""</span>
|
|
<span class="sd">Module containing the test cases for the in-game Python system.</span>
|
|
<span class="sd">"""</span>
|
|
|
|
<span class="kn">from</span> <span class="nn">mock</span> <span class="k">import</span> <span class="n">Mock</span>
|
|
<span class="kn">from</span> <span class="nn">textwrap</span> <span class="k">import</span> <span class="n">dedent</span>
|
|
|
|
<span class="kn">from</span> <span class="nn">django.conf</span> <span class="k">import</span> <span class="n">settings</span>
|
|
<span class="kn">from</span> <span class="nn">evennia</span> <span class="k">import</span> <span class="n">ScriptDB</span>
|
|
<span class="kn">from</span> <span class="nn">evennia.commands.default.tests</span> <span class="k">import</span> <span class="n">CommandTest</span>
|
|
<span class="kn">from</span> <span class="nn">evennia.objects.objects</span> <span class="k">import</span> <span class="n">ExitCommand</span>
|
|
<span class="kn">from</span> <span class="nn">evennia.utils</span> <span class="k">import</span> <span class="n">ansi</span><span class="p">,</span> <span class="n">utils</span>
|
|
<span class="kn">from</span> <span class="nn">evennia.utils.create</span> <span class="k">import</span> <span class="n">create_object</span><span class="p">,</span> <span class="n">create_script</span>
|
|
<span class="kn">from</span> <span class="nn">evennia.utils.test_resources</span> <span class="k">import</span> <span class="n">EvenniaTest</span>
|
|
<span class="kn">from</span> <span class="nn">evennia.contrib.ingame_python.commands</span> <span class="k">import</span> <span class="n">CmdCallback</span>
|
|
<span class="kn">from</span> <span class="nn">evennia.contrib.ingame_python.callbackhandler</span> <span class="k">import</span> <span class="n">CallbackHandler</span>
|
|
|
|
<span class="c1"># Force settings</span>
|
|
<span class="n">settings</span><span class="o">.</span><span class="n">EVENTS_CALENDAR</span> <span class="o">=</span> <span class="s2">"standard"</span>
|
|
|
|
<span class="c1"># Constants</span>
|
|
<span class="n">OLD_EVENTS</span> <span class="o">=</span> <span class="p">{}</span>
|
|
|
|
|
|
<div class="viewcode-block" id="TestEventHandler"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestEventHandler">[docs]</a><span class="k">class</span> <span class="nc">TestEventHandler</span><span class="p">(</span><span class="n">EvenniaTest</span><span class="p">):</span>
|
|
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> Test cases of the event handler to add, edit or delete events.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<div class="viewcode-block" id="TestEventHandler.setUp"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestEventHandler.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="sd">"""Create the event handler."""</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="bp">self</span><span class="o">.</span><span class="n">handler</span> <span class="o">=</span> <span class="n">create_script</span><span class="p">(</span><span class="s2">"evennia.contrib.ingame_python.scripts.EventHandler"</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Copy old events if necessary</span>
|
|
<span class="k">if</span> <span class="n">OLD_EVENTS</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">events</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="n">OLD_EVENTS</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Alter typeclasses</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">swap_typeclass</span><span class="p">(</span><span class="s2">"evennia.contrib.ingame_python.typeclasses.EventCharacter"</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">swap_typeclass</span><span class="p">(</span><span class="s2">"evennia.contrib.ingame_python.typeclasses.EventCharacter"</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">swap_typeclass</span><span class="p">(</span><span class="s2">"evennia.contrib.ingame_python.typeclasses.EventRoom"</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">swap_typeclass</span><span class="p">(</span><span class="s2">"evennia.contrib.ingame_python.typeclasses.EventRoom"</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">swap_typeclass</span><span class="p">(</span><span class="s2">"evennia.contrib.ingame_python.typeclasses.EventExit"</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestEventHandler.tearDown"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestEventHandler.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="sd">"""Stop the event handler."""</span>
|
|
<span class="n">OLD_EVENTS</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
|
|
<span class="n">OLD_EVENTS</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">events</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span>
|
|
<span class="n">CallbackHandler</span><span class="o">.</span><span class="n">script</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">tearDown</span><span class="p">()</span></div>
|
|
|
|
<div class="viewcode-block" id="TestEventHandler.test_start"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestEventHandler.test_start">[docs]</a> <span class="k">def</span> <span class="nf">test_start</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sd">"""Simply make sure the handler runs with proper initial values."""</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">handler</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">callbacks</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="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">to_valid</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="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">locked</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="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">tasks</span><span class="p">,</span> <span class="p">{})</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIsNotNone</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">events</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestEventHandler.test_add_validation"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestEventHandler.test_add_validation">[docs]</a> <span class="k">def</span> <span class="nf">test_add_validation</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sd">"""Add a callback while needing validation."""</span>
|
|
<span class="n">author</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">add_callback</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="s2">"character.db.strength = 40"</span><span class="p">,</span> <span class="n">author</span><span class="o">=</span><span class="n">author</span><span class="p">,</span> <span class="n">valid</span><span class="o">=</span><span class="kc">False</span>
|
|
<span class="p">)</span>
|
|
<span class="n">callback</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">get_callbacks</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">)</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dummy"</span><span class="p">)</span>
|
|
<span class="n">callback</span> <span class="o">=</span> <span class="n">callback</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIsNotNone</span><span class="p">(</span><span class="n">callback</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">callback</span><span class="p">[</span><span class="s2">"author"</span><span class="p">],</span> <span class="n">author</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">callback</span><span class="p">[</span><span class="s2">"valid"</span><span class="p">],</span> <span class="kc">False</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Since this callback is not valid, it should appear in 'to_valid'</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIn</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">to_valid</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Run this dummy callback (shouldn't do anything)</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">strength</span> <span class="o">=</span> <span class="mi">10</span>
|
|
<span class="nb">locals</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"character"</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">assertTrue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">handler</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">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="nb">locals</span><span class="o">=</span><span class="nb">locals</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">db</span><span class="o">.</span><span class="n">strength</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestEventHandler.test_edit"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestEventHandler.test_edit">[docs]</a> <span class="k">def</span> <span class="nf">test_edit</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sd">"""Test editing a callback."""</span>
|
|
<span class="n">author</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">add_callback</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="s2">"character.db.strength = 60"</span><span class="p">,</span> <span class="n">author</span><span class="o">=</span><span class="n">author</span><span class="p">,</span> <span class="n">valid</span><span class="o">=</span><span class="kc">True</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="c1"># Edit it right away</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">edit_callback</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">"character.db.strength = 65"</span><span class="p">,</span> <span class="n">author</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="n">valid</span><span class="o">=</span><span class="kc">True</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="c1"># Check that the callback was written</span>
|
|
<span class="n">callback</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">get_callbacks</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">)</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dummy"</span><span class="p">)</span>
|
|
<span class="n">callback</span> <span class="o">=</span> <span class="n">callback</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIsNotNone</span><span class="p">(</span><span class="n">callback</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">callback</span><span class="p">[</span><span class="s2">"author"</span><span class="p">],</span> <span class="n">author</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">callback</span><span class="p">[</span><span class="s2">"valid"</span><span class="p">],</span> <span class="kc">True</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">callback</span><span class="p">[</span><span class="s2">"updated_by"</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="c1"># Run this dummy callback</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">strength</span> <span class="o">=</span> <span class="mi">10</span>
|
|
<span class="nb">locals</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"character"</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">assertTrue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">handler</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">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="nb">locals</span><span class="o">=</span><span class="nb">locals</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">db</span><span class="o">.</span><span class="n">strength</span><span class="p">,</span> <span class="mi">65</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestEventHandler.test_edit_validation"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestEventHandler.test_edit_validation">[docs]</a> <span class="k">def</span> <span class="nf">test_edit_validation</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sd">"""Edit a callback when validation isn't automatic."""</span>
|
|
<span class="n">author</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">char1</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">add_callback</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="s2">"character.db.strength = 70"</span><span class="p">,</span> <span class="n">author</span><span class="o">=</span><span class="n">author</span><span class="p">,</span> <span class="n">valid</span><span class="o">=</span><span class="kc">True</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="c1"># Edit it right away</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">edit_callback</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">"character.db.strength = 80"</span><span class="p">,</span> <span class="n">author</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="n">valid</span><span class="o">=</span><span class="kc">False</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="c1"># Run this dummy callback (shouldn't do anything)</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">strength</span> <span class="o">=</span> <span class="mi">10</span>
|
|
<span class="nb">locals</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"character"</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">assertTrue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">handler</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">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="nb">locals</span><span class="o">=</span><span class="nb">locals</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">db</span><span class="o">.</span><span class="n">strength</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestEventHandler.test_del"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestEventHandler.test_del">[docs]</a> <span class="k">def</span> <span class="nf">test_del</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sd">"""Try to delete a callback."""</span>
|
|
<span class="c1"># Add 3 callbacks</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">add_callback</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="s2">"character.db.strength = 5"</span><span class="p">,</span> <span class="n">author</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="n">valid</span><span class="o">=</span><span class="kc">True</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">add_callback</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="s2">"character.db.strength = 8"</span><span class="p">,</span> <span class="n">author</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="n">valid</span><span class="o">=</span><span class="kc">False</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">add_callback</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="s2">"character.db.strength = 9"</span><span class="p">,</span> <span class="n">author</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="n">valid</span><span class="o">=</span><span class="kc">True</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="c1"># Note that the second callback isn't valid</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIn</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</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">handler</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">to_valid</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Lock the third callback</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">locked</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">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span>
|
|
|
|
<span class="c1"># Delete the first callback</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">del_callback</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
|
|
|
|
<span class="c1"># The callback #1 that was to valid should be #0 now</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIn</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">to_valid</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertNotIn</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</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">handler</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">to_valid</span><span class="p">)</span>
|
|
|
|
<span class="c1"># The lock has been updated too</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIn</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</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">handler</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">locked</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertNotIn</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">locked</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Now delete the first (not valid) callback</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">del_callback</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="mi">0</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">handler</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">to_valid</span><span class="p">,</span> <span class="p">[])</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIn</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">locked</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertNotIn</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</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">handler</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">locked</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Call the remaining callback</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">strength</span> <span class="o">=</span> <span class="mi">10</span>
|
|
<span class="nb">locals</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"character"</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">assertTrue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">handler</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">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="nb">locals</span><span class="o">=</span><span class="nb">locals</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">db</span><span class="o">.</span><span class="n">strength</span><span class="p">,</span> <span class="mi">9</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestEventHandler.test_accept"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestEventHandler.test_accept">[docs]</a> <span class="k">def</span> <span class="nf">test_accept</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sd">"""Accept an callback."""</span>
|
|
<span class="c1"># Add 2 callbacks</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">add_callback</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="s2">"character.db.strength = 5"</span><span class="p">,</span> <span class="n">author</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="n">valid</span><span class="o">=</span><span class="kc">True</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">add_callback</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="s2">"character.db.strength = 8"</span><span class="p">,</span> <span class="n">author</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="n">valid</span><span class="o">=</span><span class="kc">False</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="c1"># Note that the second callback isn't valid</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIn</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</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">handler</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">to_valid</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Accept the second callback</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">accept_callback</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
|
<span class="n">callback</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">get_callbacks</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">)</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dummy"</span><span class="p">)</span>
|
|
<span class="n">callback</span> <span class="o">=</span> <span class="n">callback</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">assertIsNotNone</span><span class="p">(</span><span class="n">callback</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">callback</span><span class="p">[</span><span class="s2">"valid"</span><span class="p">],</span> <span class="kc">True</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Call the dummy callback</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">strength</span> <span class="o">=</span> <span class="mi">10</span>
|
|
<span class="nb">locals</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"character"</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">assertTrue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">handler</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">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="nb">locals</span><span class="o">=</span><span class="nb">locals</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">db</span><span class="o">.</span><span class="n">strength</span><span class="p">,</span> <span class="mi">8</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestEventHandler.test_call"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestEventHandler.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="sd">"""Test to call amore complex callback."""</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">key</span> <span class="o">=</span> <span class="s2">"one"</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char2</span><span class="o">.</span><span class="n">key</span> <span class="o">=</span> <span class="s2">"two"</span>
|
|
|
|
<span class="c1"># Add an callback</span>
|
|
<span class="n">code</span> <span class="o">=</span> <span class="n">dedent</span><span class="p">(</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> if character.key == "one":</span>
|
|
<span class="sd"> character.db.health = 50</span>
|
|
<span class="sd"> else:</span>
|
|
<span class="sd"> character.db.health = 0</span>
|
|
<span class="sd"> """</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span>
|
|
<span class="s2">"</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="p">)</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">add_callback</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="n">code</span><span class="p">,</span> <span class="n">author</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="n">valid</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Call the dummy callback</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">handler</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">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="nb">locals</span><span class="o">=</span><span class="p">{</span><span class="s2">"character"</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">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">db</span><span class="o">.</span><span class="n">health</span><span class="p">,</span> <span class="mi">50</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">handler</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">room1</span><span class="p">,</span> <span class="s2">"dummy"</span><span class="p">,</span> <span class="nb">locals</span><span class="o">=</span><span class="p">{</span><span class="s2">"character"</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">assertEqual</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">db</span><span class="o">.</span><span class="n">health</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestEventHandler.test_handler"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestEventHandler.test_handler">[docs]</a> <span class="k">def</span> <span class="nf">test_handler</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sd">"""Test the object handler."""</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIsNotNone</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">callbacks</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Add an callback</span>
|
|
<span class="n">callback</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">callbacks</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">"dummy"</span><span class="p">,</span> <span class="s2">"pass"</span><span class="p">,</span> <span class="n">author</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="n">valid</span><span class="o">=</span><span class="kc">True</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">callback</span><span class="o">.</span><span class="n">obj</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">room1</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">callback</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="s2">"dummy"</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">callback</span><span class="o">.</span><span class="n">code</span><span class="p">,</span> <span class="s2">"pass"</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">callback</span><span class="o">.</span><span class="n">author</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">assertEqual</span><span class="p">(</span><span class="n">callback</span><span class="o">.</span><span class="n">valid</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIn</span><span class="p">([</span><span class="n">callback</span><span class="p">],</span> <span class="nb">list</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">callbacks</span><span class="o">.</span><span class="n">all</span><span class="p">()</span><span class="o">.</span><span class="n">values</span><span class="p">()))</span>
|
|
|
|
<span class="c1"># Edit this very callback</span>
|
|
<span class="n">new</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">callbacks</span><span class="o">.</span><span class="n">edit</span><span class="p">(</span>
|
|
<span class="s2">"dummy"</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">"character.db.say = True"</span><span class="p">,</span> <span class="n">author</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="n">valid</span><span class="o">=</span><span class="kc">True</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIn</span><span class="p">([</span><span class="n">new</span><span class="p">],</span> <span class="nb">list</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">callbacks</span><span class="o">.</span><span class="n">all</span><span class="p">()</span><span class="o">.</span><span class="n">values</span><span class="p">()))</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertNotIn</span><span class="p">([</span><span class="n">callback</span><span class="p">],</span> <span class="nb">list</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">callbacks</span><span class="o">.</span><span class="n">all</span><span class="p">()</span><span class="o">.</span><span class="n">values</span><span class="p">()))</span>
|
|
|
|
<span class="c1"># Try to call this callback</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">room1</span><span class="o">.</span><span class="n">callbacks</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="s2">"dummy"</span><span class="p">,</span> <span class="nb">locals</span><span class="o">=</span><span class="p">{</span><span class="s2">"character"</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="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">say</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Delete the callback</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="o">.</span><span class="n">callbacks</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="s2">"dummy"</span><span class="p">,</span> <span class="mi">0</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">room1</span><span class="o">.</span><span class="n">callbacks</span><span class="o">.</span><span class="n">all</span><span class="p">(),</span> <span class="p">{})</span></div></div>
|
|
|
|
|
|
<div class="viewcode-block" id="TestCmdCallback"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestCmdCallback">[docs]</a><span class="k">class</span> <span class="nc">TestCmdCallback</span><span class="p">(</span><span class="n">CommandTest</span><span class="p">):</span>
|
|
|
|
<span class="sd">"""Test the @callback command."""</span>
|
|
|
|
<div class="viewcode-block" id="TestCmdCallback.setUp"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestCmdCallback.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="sd">"""Create the callback handler."""</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="bp">self</span><span class="o">.</span><span class="n">handler</span> <span class="o">=</span> <span class="n">create_script</span><span class="p">(</span><span class="s2">"evennia.contrib.ingame_python.scripts.EventHandler"</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Copy old events if necessary</span>
|
|
<span class="k">if</span> <span class="n">OLD_EVENTS</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">events</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="n">OLD_EVENTS</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Alter typeclasses</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">swap_typeclass</span><span class="p">(</span><span class="s2">"evennia.contrib.ingame_python.typeclasses.EventCharacter"</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">swap_typeclass</span><span class="p">(</span><span class="s2">"evennia.contrib.ingame_python.typeclasses.EventCharacter"</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">swap_typeclass</span><span class="p">(</span><span class="s2">"evennia.contrib.ingame_python.typeclasses.EventRoom"</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">swap_typeclass</span><span class="p">(</span><span class="s2">"evennia.contrib.ingame_python.typeclasses.EventRoom"</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">swap_typeclass</span><span class="p">(</span><span class="s2">"evennia.contrib.ingame_python.typeclasses.EventExit"</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdCallback.tearDown"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestCmdCallback.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="sd">"""Stop the callback handler."""</span>
|
|
<span class="n">OLD_EVENTS</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
|
|
<span class="n">OLD_EVENTS</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">events</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span>
|
|
<span class="k">for</span> <span class="n">script</span> <span class="ow">in</span> <span class="n">ScriptDB</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
|
|
<span class="n">db_typeclass_path</span><span class="o">=</span><span class="s2">"evennia.contrib.ingame_python.scripts.TimeEventScript"</span>
|
|
<span class="p">):</span>
|
|
<span class="n">script</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span>
|
|
|
|
<span class="n">CallbackHandler</span><span class="o">.</span><span class="n">script</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">tearDown</span><span class="p">()</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdCallback.test_list"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestCmdCallback.test_list">[docs]</a> <span class="k">def</span> <span class="nf">test_list</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sd">"""Test listing callbacks with different rights."""</span>
|
|
<span class="n">table</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">CmdCallback</span><span class="p">(),</span> <span class="s2">"out"</span><span class="p">)</span>
|
|
<span class="n">lines</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()[</span><span class="mi">3</span><span class="p">:</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">assertNotEqual</span><span class="p">(</span><span class="n">lines</span><span class="p">,</span> <span class="p">[])</span>
|
|
|
|
<span class="c1"># Check that the second column only contains 0 (0) (no callback yet)</span>
|
|
<span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">:</span>
|
|
<span class="n">cols</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</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">assertIn</span><span class="p">(</span><span class="n">cols</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="p">(</span><span class="s2">"0 (0)"</span><span class="p">,</span> <span class="s2">""</span><span class="p">))</span>
|
|
|
|
<span class="c1"># Add some callback</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">add_callback</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="p">,</span> <span class="s2">"traverse"</span><span class="p">,</span> <span class="s2">"pass"</span><span class="p">,</span> <span class="n">author</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="n">valid</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Try to obtain more details on a specific callback on exit</span>
|
|
<span class="n">table</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">CmdCallback</span><span class="p">(),</span> <span class="s2">"out = traverse"</span><span class="p">)</span>
|
|
<span class="n">lines</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()[</span><span class="mi">3</span><span class="p">:</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">assertEqual</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">lines</span><span class="p">),</span> <span class="mi">1</span><span class="p">)</span>
|
|
<span class="n">line</span> <span class="o">=</span> <span class="n">lines</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
|
<span class="n">cols</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</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">assertIn</span><span class="p">(</span><span class="n">cols</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="p">(</span><span class="s2">"1"</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">assertIn</span><span class="p">(</span><span class="n">cols</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="p">(</span><span class="nb">str</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="s2">""</span><span class="p">))</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIn</span><span class="p">(</span><span class="n">cols</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="p">(</span><span class="s2">"Yes"</span><span class="p">,</span> <span class="s2">"No"</span><span class="p">,</span> <span class="s2">""</span><span class="p">))</span>
|
|
|
|
<span class="c1"># Run the same command with char2</span>
|
|
<span class="c1"># char2 shouldn't see the last column (Valid)</span>
|
|
<span class="n">table</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">CmdCallback</span><span class="p">(),</span> <span class="s2">"out = traverse"</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="n">lines</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()[</span><span class="mi">3</span><span class="p">:</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">assertEqual</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">lines</span><span class="p">),</span> <span class="mi">1</span><span class="p">)</span>
|
|
<span class="n">line</span> <span class="o">=</span> <span class="n">lines</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
|
<span class="n">cols</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</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">cols</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="s2">"1"</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertNotIn</span><span class="p">(</span><span class="n">cols</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="p">(</span><span class="s2">"Yes"</span><span class="p">,</span> <span class="s2">"No"</span><span class="p">))</span>
|
|
|
|
<span class="c1"># In any case, display the callback</span>
|
|
<span class="c1"># The last line should be "pass" (the callback code)</span>
|
|
<span class="n">details</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">CmdCallback</span><span class="p">(),</span> <span class="s2">"out = traverse 1"</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">details</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()[</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="s2">"pass"</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdCallback.test_add"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestCmdCallback.test_add">[docs]</a> <span class="k">def</span> <span class="nf">test_add</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sd">"""Test to add an callback."""</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">CmdCallback</span><span class="p">(),</span> <span class="s2">"/add out = traverse"</span><span class="p">)</span>
|
|
<span class="n">editor</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">_eveditor</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIsNotNone</span><span class="p">(</span><span class="n">editor</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Edit the callback</span>
|
|
<span class="n">editor</span><span class="o">.</span><span class="n">update_buffer</span><span class="p">(</span>
|
|
<span class="n">dedent</span><span class="p">(</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> if character.key == "one":</span>
|
|
<span class="sd"> character.msg("You can pass.")</span>
|
|
<span class="sd"> else:</span>
|
|
<span class="sd"> character.msg("You can't pass.")</span>
|
|
<span class="sd"> deny()</span>
|
|
<span class="sd"> """</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span>
|
|
<span class="s2">"</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="p">)</span>
|
|
<span class="p">)</span>
|
|
<span class="p">)</span>
|
|
<span class="n">editor</span><span class="o">.</span><span class="n">save_buffer</span><span class="p">()</span>
|
|
<span class="n">editor</span><span class="o">.</span><span class="n">quit</span><span class="p">()</span>
|
|
<span class="n">callback</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="o">.</span><span class="n">callbacks</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"traverse"</span><span class="p">)[</span><span class="mi">0</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">callback</span><span class="o">.</span><span class="n">author</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">assertEqual</span><span class="p">(</span><span class="n">callback</span><span class="o">.</span><span class="n">valid</span><span class="p">,</span> <span class="kc">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="nb">len</span><span class="p">(</span><span class="n">callback</span><span class="o">.</span><span class="n">code</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span>
|
|
|
|
<span class="c1"># We're going to try the same thing but with char2</span>
|
|
<span class="c1"># char2 being a player for our test, the callback won't be validated.</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">CmdCallback</span><span class="p">(),</span> <span class="s2">"/add out = traverse"</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="n">editor</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">ndb</span><span class="o">.</span><span class="n">_eveditor</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIsNotNone</span><span class="p">(</span><span class="n">editor</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Edit the callback</span>
|
|
<span class="n">editor</span><span class="o">.</span><span class="n">update_buffer</span><span class="p">(</span>
|
|
<span class="n">dedent</span><span class="p">(</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> character.msg("No way.")</span>
|
|
<span class="sd"> """</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span>
|
|
<span class="s2">"</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="p">)</span>
|
|
<span class="p">)</span>
|
|
<span class="p">)</span>
|
|
<span class="n">editor</span><span class="o">.</span><span class="n">save_buffer</span><span class="p">()</span>
|
|
<span class="n">editor</span><span class="o">.</span><span class="n">quit</span><span class="p">()</span>
|
|
<span class="n">callback</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="o">.</span><span class="n">callbacks</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"traverse"</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">assertEqual</span><span class="p">(</span><span class="n">callback</span><span class="o">.</span><span class="n">author</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">assertEqual</span><span class="p">(</span><span class="n">callback</span><span class="o">.</span><span class="n">valid</span><span class="p">,</span> <span class="kc">False</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="nb">len</span><span class="p">(</span><span class="n">callback</span><span class="o">.</span><span class="n">code</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdCallback.test_del"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestCmdCallback.test_del">[docs]</a> <span class="k">def</span> <span class="nf">test_del</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sd">"""Add and remove an callback."""</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">add_callback</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="p">,</span> <span class="s2">"traverse"</span><span class="p">,</span> <span class="s2">"pass"</span><span class="p">,</span> <span class="n">author</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="n">valid</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Try to delete the callback</span>
|
|
<span class="c1"># char2 shouldn't be allowed to do so (that's not HIS callback)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">CmdCallback</span><span class="p">(),</span> <span class="s2">"/del out = traverse 1"</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="bp">self</span><span class="o">.</span><span class="n">assertTrue</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">get_callbacks</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="p">)</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"traverse"</span><span class="p">,</span> <span class="p">[]))</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Now, char1 should be allowed to delete it</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">CmdCallback</span><span class="p">(),</span> <span class="s2">"/del out = traverse 1"</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="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">get_callbacks</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="p">)</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"traverse"</span><span class="p">,</span> <span class="p">[]))</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdCallback.test_lock"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestCmdCallback.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="sd">"""Test the lock of multiple editing."""</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">CmdCallback</span><span class="p">(),</span> <span class="s2">"/add here = time 8:00"</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="bp">self</span><span class="o">.</span><span class="n">assertIsNotNone</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">ndb</span><span class="o">.</span><span class="n">_eveditor</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Now ask char1 to edit</span>
|
|
<span class="n">line</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">CmdCallback</span><span class="p">(),</span> <span class="s2">"/edit here = time 1"</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="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">_eveditor</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Try to delete this callback while char2 is editing it</span>
|
|
<span class="n">line</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">CmdCallback</span><span class="p">(),</span> <span class="s2">"/del here = time 1"</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestCmdCallback.test_accept"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestCmdCallback.test_accept">[docs]</a> <span class="k">def</span> <span class="nf">test_accept</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sd">"""Accept an callback."""</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">CmdCallback</span><span class="p">(),</span> <span class="s2">"/add here = time 8:00"</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="n">editor</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">ndb</span><span class="o">.</span><span class="n">_eveditor</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIsNotNone</span><span class="p">(</span><span class="n">editor</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Edit the callback</span>
|
|
<span class="n">editor</span><span class="o">.</span><span class="n">update_buffer</span><span class="p">(</span>
|
|
<span class="n">dedent</span><span class="p">(</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> room.msg_contents("It's 8 PM, everybody up!")</span>
|
|
<span class="sd"> """</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span>
|
|
<span class="s2">"</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="p">)</span>
|
|
<span class="p">)</span>
|
|
<span class="p">)</span>
|
|
<span class="n">editor</span><span class="o">.</span><span class="n">save_buffer</span><span class="p">()</span>
|
|
<span class="n">editor</span><span class="o">.</span><span class="n">quit</span><span class="p">()</span>
|
|
<span class="n">callback</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">callbacks</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"time"</span><span class="p">)[</span><span class="mi">0</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">callback</span><span class="o">.</span><span class="n">valid</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
|
|
|
|
<span class="c1"># chars shouldn't be allowed to the callback</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">CmdCallback</span><span class="p">(),</span> <span class="s2">"/accept here = time 1"</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="n">callback</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">callbacks</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"time"</span><span class="p">)[</span><span class="mi">0</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">callback</span><span class="o">.</span><span class="n">valid</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
|
|
|
|
<span class="c1"># char1 will accept the callback</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">CmdCallback</span><span class="p">(),</span> <span class="s2">"/accept here = time 1"</span><span class="p">)</span>
|
|
<span class="n">callback</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">callbacks</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"time"</span><span class="p">)[</span><span class="mi">0</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">callback</span><span class="o">.</span><span class="n">valid</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span></div></div>
|
|
|
|
|
|
<div class="viewcode-block" id="TestDefaultCallbacks"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestDefaultCallbacks">[docs]</a><span class="k">class</span> <span class="nc">TestDefaultCallbacks</span><span class="p">(</span><span class="n">CommandTest</span><span class="p">):</span>
|
|
|
|
<span class="sd">"""Test the default callbacks."""</span>
|
|
|
|
<div class="viewcode-block" id="TestDefaultCallbacks.setUp"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestDefaultCallbacks.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="sd">"""Create the callback handler."""</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="bp">self</span><span class="o">.</span><span class="n">handler</span> <span class="o">=</span> <span class="n">create_script</span><span class="p">(</span><span class="s2">"evennia.contrib.ingame_python.scripts.EventHandler"</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Copy old events if necessary</span>
|
|
<span class="k">if</span> <span class="n">OLD_EVENTS</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">events</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="n">OLD_EVENTS</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Alter typeclasses</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">swap_typeclass</span><span class="p">(</span><span class="s2">"evennia.contrib.ingame_python.typeclasses.EventCharacter"</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">swap_typeclass</span><span class="p">(</span><span class="s2">"evennia.contrib.ingame_python.typeclasses.EventCharacter"</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">swap_typeclass</span><span class="p">(</span><span class="s2">"evennia.contrib.ingame_python.typeclasses.EventRoom"</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">swap_typeclass</span><span class="p">(</span><span class="s2">"evennia.contrib.ingame_python.typeclasses.EventRoom"</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">swap_typeclass</span><span class="p">(</span><span class="s2">"evennia.contrib.ingame_python.typeclasses.EventExit"</span><span class="p">)</span></div>
|
|
|
|
<div class="viewcode-block" id="TestDefaultCallbacks.tearDown"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestDefaultCallbacks.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="sd">"""Stop the callback handler."""</span>
|
|
<span class="n">OLD_EVENTS</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
|
|
<span class="n">OLD_EVENTS</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">events</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span>
|
|
<span class="n">CallbackHandler</span><span class="o">.</span><span class="n">script</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">tearDown</span><span class="p">()</span></div>
|
|
|
|
<div class="viewcode-block" id="TestDefaultCallbacks.test_exit"><a class="viewcode-back" href="../../../../api/evennia.contrib.ingame_python.tests.html#evennia.contrib.ingame_python.tests.TestDefaultCallbacks.test_exit">[docs]</a> <span class="k">def</span> <span class="nf">test_exit</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sd">"""Test the callbacks of an exit."""</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">key</span> <span class="o">=</span> <span class="s2">"char1"</span>
|
|
<span class="n">code</span> <span class="o">=</span> <span class="n">dedent</span><span class="p">(</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> if character.key == "char1":</span>
|
|
<span class="sd"> character.msg("You can leave.")</span>
|
|
<span class="sd"> else:</span>
|
|
<span class="sd"> character.msg("You cannot leave.")</span>
|
|
<span class="sd"> deny()</span>
|
|
<span class="sd"> """</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span>
|
|
<span class="s2">"</span><span class="se">\n</span><span class="s2">"</span>
|
|
<span class="p">)</span>
|
|
<span class="p">)</span>
|
|
<span class="c1"># Enforce self.exit.destination since swapping typeclass lose it</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="o">.</span><span class="n">destination</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">room2</span>
|
|
|
|
<span class="c1"># Try the can_traverse callback</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">add_callback</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="p">,</span> <span class="s2">"can_traverse"</span><span class="p">,</span> <span class="n">code</span><span class="p">,</span> <span class="n">author</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="n">valid</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Have char1 move through the exit</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">ExitCommand</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"You can leave."</span><span class="p">,</span> <span class="n">obj</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">assertIs</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">room2</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Have char2 move through this exit</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">ExitCommand</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"You cannot leave."</span><span class="p">,</span> <span class="n">obj</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">exit</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="bp">self</span><span class="o">.</span><span class="n">assertIs</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">location</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Try the traverse callback</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">del_callback</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="p">,</span> <span class="s2">"can_traverse"</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">add_callback</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="p">,</span> <span class="s2">"traverse"</span><span class="p">,</span> <span class="s2">"character.msg('Fine!')"</span><span class="p">,</span> <span class="n">author</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="n">valid</span><span class="o">=</span><span class="kc">True</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="c1"># Have char2 move through the exit</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">ExitCommand</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="n">obj</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">exit</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="bp">self</span><span class="o">.</span><span class="n">assertIs</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">location</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">room2</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">del_callback</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="p">,</span> <span class="s2">"traverse"</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Move char1 and char2 back</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">room1</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">room1</span>
|
|
|
|
<span class="c1"># Test msg_arrive and msg_leave</span>
|
|
<span class="n">code</span> <span class="o">=</span> <span class="s1">'message = "</span><span class="si">{character}</span><span class="s1"> goes out."'</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">add_callback</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="p">,</span> <span class="s2">"msg_leave"</span><span class="p">,</span> <span class="n">code</span><span class="p">,</span> <span class="n">author</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="n">valid</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Have char1 move through the exit</span>
|
|
<span class="n">old_msg</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">msg</span>
|
|
<span class="k">try</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="n">ExitCommand</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="n">obj</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="p">)</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="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_calls</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="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="n">smsg</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="n">returned_msg</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="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="n">stored_msg</span><span class="p">),</span> <span class="n">strip_ansi</span><span class="o">=</span><span class="kc">True</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">returned_msg</span><span class="p">,</span> <span class="s2">"char1 goes out."</span><span class="p">)</span>
|
|
<span class="k">finally</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">old_msg</span>
|
|
|
|
<span class="c1"># Create a return exit</span>
|
|
<span class="n">back</span> <span class="o">=</span> <span class="n">create_object</span><span class="p">(</span>
|
|
<span class="s2">"evennia.objects.objects.DefaultExit"</span><span class="p">,</span>
|
|
<span class="n">key</span><span class="o">=</span><span class="s2">"in"</span><span class="p">,</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="p">,</span>
|
|
<span class="n">destination</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="n">code</span> <span class="o">=</span> <span class="s1">'message = "</span><span class="si">{character}</span><span class="s1"> goes in."'</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">handler</span><span class="o">.</span><span class="n">add_callback</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="p">,</span> <span class="s2">"msg_arrive"</span><span class="p">,</span> <span class="n">code</span><span class="p">,</span> <span class="n">author</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="n">valid</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Have char1 move through the exit</span>
|
|
<span class="n">old_msg</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">msg</span>
|
|
<span class="k">try</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="n">ExitCommand</span><span class="p">(),</span> <span class="s2">""</span><span class="p">,</span> <span class="n">obj</span><span class="o">=</span><span class="n">back</span><span class="p">)</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="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_calls</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="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="n">smsg</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="n">returned_msg</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="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="n">stored_msg</span><span class="p">),</span> <span class="n">strip_ansi</span><span class="o">=</span><span class="kc">True</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">returned_msg</span><span class="p">,</span> <span class="s2">"char1 goes in."</span><span class="p">)</span>
|
|
<span class="k">finally</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">old_msg</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>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 (master 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.contrib.ingame_python.tests</a></li>
|
|
</ul>
|
|
</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> |