diff --git a/evennia/commands/default/tests.py b/evennia/commands/default/tests.py index 2bf3ef3f81..ffa27fbff7 100644 --- a/evennia/commands/default/tests.py +++ b/evennia/commands/default/tests.py @@ -49,7 +49,7 @@ class CommandTest(EvenniaTest): Tests a command """ def call(self, cmdobj, args, msg=None, cmdset=None, noansi=True, caller=None, - receiver=None, cmdstring=None, obj=None, inputs=None): + receiver=None, cmdstring=None, obj=None, inputs=None, raw_string=None): """ Test a command by assigning all the needed properties to cmdobj and running @@ -74,7 +74,7 @@ class CommandTest(EvenniaTest): cmdobj.cmdset = cmdset cmdobj.session = SESSIONS.session_from_sessid(1) cmdobj.account = self.account - cmdobj.raw_string = cmdobj.key + " " + args + cmdobj.raw_string = raw_string if raw_string is not None else cmdobj.key + " " + args cmdobj.obj = obj or (caller if caller else self.char1) # test old_msg = receiver.msg diff --git a/evennia/utils/eveditor.py b/evennia/utils/eveditor.py index 2ec3865eeb..9ff04193f3 100644 --- a/evennia/utils/eveditor.py +++ b/evennia/utils/eveditor.py @@ -510,7 +510,7 @@ class CmdEditorGroup(CmdEditorBase): else: buf = linebuffer[:lstart] + editor._copy_buffer + linebuffer[lstart:] editor.update_buffer(buf) - caller.msg("Copied buffer %s to %s." % (editor._copy_buffer, self.lstr)) + caller.msg("Pasted buffer %s to %s." % (editor._copy_buffer, self.lstr)) elif cmd == ":i": # :i - insert new line new_lines = self.args.split('\n') diff --git a/evennia/utils/tests/test_eveditor.py b/evennia/utils/tests/test_eveditor.py new file mode 100644 index 0000000000..5fbce57c00 --- /dev/null +++ b/evennia/utils/tests/test_eveditor.py @@ -0,0 +1,93 @@ +""" +Test eveditor + +""" + +from mock import MagicMock +from django.test import TestCase +from evennia.utils import eveditor +from evennia.commands.default.tests import CommandTest + + +class TestEvEditor(CommandTest): + + def test_eveditor_view_cmd(self): + eveditor.EvEditor(self.char1) + self.call(eveditor.CmdEditorGroup(), "", cmdstring=":h", + msg=" - any non-command is appended to the end of the buffer.") + # empty buffer + self.call(eveditor.CmdEditorGroup(), "", cmdstring=":", + msg="Line Editor []\n01\n[l:01 w:000 c:0000](:h for help)") + # input a string + self.call(eveditor.CmdLineInput(), "First test line", raw_string="First test line", + msg="01First test line") + self.call(eveditor.CmdLineInput(), "Second test line", raw_string="Second test line", + msg="02Second test line") + self.assertEqual(self.char1.ndb._eveditor.get_buffer(), 'First test line\nSecond test line') + + self.call(eveditor.CmdEditorGroup(), "", cmdstring=":", # view buffer + msg="Line Editor []\n01First test line\n" + "02Second test line\n[l:02 w:006 c:0032](:h for help)") + self.call(eveditor.CmdEditorGroup(), "", cmdstring="::", # view buffer, no linenums + msg="Line Editor []\nFirst test line\n" + "Second test line\n[l:02 w:006 c:0032](:h for help)") + self.call(eveditor.CmdEditorGroup(), "", cmdstring=":::", # add single : alone on row + msg="Single ':' added to buffer.") + self.call(eveditor.CmdEditorGroup(), "", cmdstring=":", + msg="Line Editor []\n01First test line\n" + "02Second test line\n03:\n[l:03 w:007 c:0034](:h for help)") + + self.call(eveditor.CmdEditorGroup(), "", cmdstring=":dd", # delete line + msg="Deleted line 3.") + self.assertEqual(self.char1.ndb._eveditor.get_buffer(), + 'First test line\nSecond test line') + self.call(eveditor.CmdEditorGroup(), "", cmdstring=":u", # undo + msg="Undid one step.") + self.assertEqual(self.char1.ndb._eveditor.get_buffer(), + 'First test line\nSecond test line\n:') + self.call(eveditor.CmdEditorGroup(), "", cmdstring=":uu", # redo + msg="Redid one step.") + self.assertEqual(self.char1.ndb._eveditor.get_buffer(), + 'First test line\nSecond test line') + self.call(eveditor.CmdEditorGroup(), "", cmdstring=":u", # undo + msg="Undid one step.") + self.assertEqual(self.char1.ndb._eveditor.get_buffer(), + 'First test line\nSecond test line\n:') + self.call(eveditor.CmdEditorGroup(), "", cmdstring=":", + msg="Line Editor []\n01First test line\n" + "02Second test line\n03:\n[l:03 w:007 c:0034](:h for help)") + + self.call(eveditor.CmdEditorGroup(), "Second", cmdstring=":dw", # delete by word + msg="Removed Second for lines 1-4.") + self.call(eveditor.CmdEditorGroup(), "", cmdstring=":u", # undo + msg="Undid one step.") + self.call(eveditor.CmdEditorGroup(), "2 Second", cmdstring=":dw", # delete by word/line + msg="Removed Second for line 2.") + self.assertEqual(self.char1.ndb._eveditor.get_buffer(), + 'First test line\n test line\n:') + + + self.call(eveditor.CmdEditorGroup(), "2", cmdstring=":p", # paste + msg="Copy buffer is empty.") + self.call(eveditor.CmdEditorGroup(), "2", cmdstring=":y", # yank + msg="Line 2, [' test line'] yanked.") + self.call(eveditor.CmdEditorGroup(), "2", cmdstring=":p", # paste + msg="Pasted buffer [' test line'] to line 2.") + self.assertEqual(self.char1.ndb._eveditor.get_buffer(), + 'First test line\n test line\n test line\n:') + + self.call(eveditor.CmdEditorGroup(), "3", cmdstring=":x", # cut + msg="Line 3, [' test line'] cut.") + + self.call(eveditor.CmdEditorGroup(), "2 New Second line", cmdstring=":i", # insert + msg="Inserted 1 new line(s) at line 2.") + self.call(eveditor.CmdEditorGroup(), "2 New Replaced Second line", # replace + cmdstring=":r", msg="Replaced 1 line(s) at line 2.") + self.call(eveditor.CmdEditorGroup(), "2 Inserted-", # insert beginning line + cmdstring=":I", msg="Inserted text at beginning of line 2.") + self.call(eveditor.CmdEditorGroup(), "2 -End", # append end line + cmdstring=":A", msg="Appended text to end of line 2.") + + self.assertEqual( + self.char1.ndb._eveditor.get_buffer(), + 'First test line\nInserted-New Replaced Second line-End\n test line\n:')