Source code for evennia.server.profiling.tests

from django.test import TestCase
from mock import Mock, patch, mock_open
from .dummyrunner_settings import (
    c_creates_button,
    c_creates_obj,
    c_digs,
    c_examines,
    c_help,
    c_idles,
    c_login,
    c_login_nodig,
    c_logout,
    c_looks,
    c_moves,
    c_moves_n,
    c_moves_s,
    c_socialize,
)

try:
    import memplot
except ImportError:
    memplot = Mock()


[docs]class TestDummyrunnerSettings(TestCase):
[docs] def setUp(self): self.client = Mock() self.client.cid = 1 self.client.counter = Mock(return_value=1) self.client.gid = "20171025161153-1" self.client.name = "Dummy-%s" % self.client.gid self.client.password = "password-%s" % self.client.gid self.client.start_room = "testing_room_start_%s" % self.client.gid self.client.objs = [] self.client.exits = []
[docs] def clear_client_lists(self): self.client.objs = [] self.client.exits = []
[docs] def test_c_login(self): self.assertEqual( c_login(self.client), ( "create %s %s" % (self.client.name, self.client.password), "connect %s %s" % (self.client.name, self.client.password), "@dig %s" % self.client.start_room, "@teleport %s" % self.client.start_room, "@dig testing_room_1 = exit_1, exit_1", ), )
[docs] def test_c_login_no_dig(self): self.assertEqual( c_login_nodig(self.client), ( "create %s %s" % (self.client.name, self.client.password), "connect %s %s" % (self.client.name, self.client.password), ), )
[docs] def test_c_logout(self): self.assertEqual(c_logout(self.client), "@quit")
[docs] def perception_method_tests(self, func, verb, alone_suffix=""): self.assertEqual(func(self.client), "%s%s" % (verb, alone_suffix)) self.client.exits = ["exit1", "exit2"] self.assertEqual(func(self.client), ["%s exit1" % verb, "%s exit2" % verb]) self.client.objs = ["foo", "bar"] self.assertEqual(func(self.client), ["%s foo" % verb, "%s bar" % verb]) self.clear_client_lists()
[docs] def test_c_looks(self): self.perception_method_tests(c_looks, "look")
[docs] def test_c_examines(self): self.perception_method_tests(c_examines, "examine", " me")
[docs] def test_idles(self): self.assertEqual(c_idles(self.client), ("idle", "idle"))
[docs] def test_c_help(self): self.assertEqual( c_help(self.client), ("help", "help @teleport", "help look", "help @tunnel", "help @dig"), )
[docs] def test_c_digs(self): self.assertEqual(c_digs(self.client), ("@dig/tel testing_room_1 = exit_1, exit_1")) self.assertEqual(self.client.exits, ["exit_1", "exit_1"]) self.clear_client_lists()
[docs] def test_c_creates_obj(self): objname = "testing_obj_1" self.assertEqual( c_creates_obj(self.client), ( "@create %s" % objname, '@desc %s = "this is a test object' % objname, "@set %s/testattr = this is a test attribute value." % objname, "@set %s/testattr2 = this is a second test attribute." % objname, ), ) self.assertEqual(self.client.objs, [objname]) self.clear_client_lists()
[docs] def test_c_creates_button(self): objname = "testing_button_1" typeclass_name = "contrib.tutorial_examples.red_button.RedButton" self.assertEqual( c_creates_button(self.client), ("@create %s:%s" % (objname, typeclass_name), "@desc %s = test red button!" % objname), ) self.assertEqual(self.client.objs, [objname]) self.clear_client_lists()
[docs] def test_c_socialize(self): self.assertEqual( c_socialize(self.client), ( "ooc Hello!", "ooc Testing ...", "ooc Testing ... times 2", "say Yo!", "emote stands looking around.", ), )
[docs] def test_c_moves(self): self.assertEqual(c_moves(self.client), "look") self.client.exits = ["south", "north"] self.assertEqual(c_moves(self.client), ["south", "north"]) self.clear_client_lists()
[docs] def test_c_move_n(self): self.assertEqual(c_moves_n(self.client), "north")
[docs] def test_c_move_s(self): self.assertEqual(c_moves_s(self.client), "south")
[docs]class TestMemPlot(TestCase):
[docs] @patch.object(memplot, "_idmapper") @patch.object(memplot, "os") @patch.object(memplot, "open", new_callable=mock_open, create=True) @patch.object(memplot, "time") @patch("evennia.utils.idmapper.models.SharedMemoryModel.flush_from_cache", new=Mock()) def test_memplot(self, mock_time, mocked_open, mocked_os, mocked_idmapper): if isinstance(memplot, Mock): return from evennia.utils.create import create_script mocked_idmapper.cache_size.return_value = (9, 5000) mock_time.time = Mock(return_value=6000.0) script = create_script(memplot.Memplot) script.db.starttime = 0.0 mocked_os.popen.read.return_value = 5000.0 script.at_repeat() handle = mocked_open() handle.write.assert_called_with("100.0, 0.001, 0.001, 9\n") script.stop()