X-Git-Url: https://mudpy.org/gitweb?p=mudpy.git;a=blobdiff_plain;f=bin%2Ftest;h=62a6202ef0ade36080649b99bbc0d8c87c05bc36;hp=9a5e9d0bdf6ae02744f825839f14f5bbe1b9327e;hb=c55f6d9a9658ccaa0b668612161fe651037ca7af;hpb=46c017e77930145841d235c73815056a1a6e9327 diff --git a/bin/test b/bin/test index 9a5e9d0..62a6202 100755 --- a/bin/test +++ b/bin/test @@ -1,7 +1,7 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 """Regression test script for the mudpy engine.""" -# Copyright (c) 2004-2015 Jeremy Stanley . Permission +# Copyright (c) 2004-2016 Jeremy Stanley . Permission # to use, copy, modify, and distribute this software is granted under # terms provided in the LICENSE file distributed with this software. @@ -89,7 +89,7 @@ test_sentence_capitalization = ( test_chat_mode = ( (1, '> ', "chat"), - (1, '> \(chat\) ', "Feeling chatty."), + (1, '(?s)Entering chat mode .*> \(chat\) ', "Feeling chatty."), (1, 'You say, "Feeling chatty\."', "!chat"), (0, 'says, "Feeling chatty\."', ""), (1, '> ', "say Now less chatty."), @@ -97,20 +97,33 @@ test_chat_mode = ( (0, 'says, "Now less chatty\."', ""), ) +test_movement = ( + (0, "> ", "move north"), + (0, "You exit to the north\.", ""), + (1, "exits to the north\.", "move north"), + (0, "arrives from the south\.", "move south"), + (0, "You exit to the south\.", ""), + (1, "exits to the south\.", "move south"), + (0, "arrives from the north\.", "move east"), + (0, "You exit to the east\.", ""), + (1, "exits to the east\.", "move east"), + (0, "arrives from the west\.", "move west"), + (0, "You exit to the west\.", ""), + (1, "exits to the west\.", "move west"), + (0, "arrives from the east\.", "move up"), + (0, "You exit upward\.", ""), + (1, "exits upward\.", "move up"), + (0, "arrives from below\.", "move down"), + (0, "You exit downward\.", ""), + (1, "exits downward\.", "move down"), + (0, "arrives from above\.", ""), +) + test_actor_disappears = ( (1, "> ", "quit"), (0, "You suddenly wonder where .* went\.", ""), ) -test_account0_teardown = ( - (0, "> ", "quit"), - (0, "What would you like to do?", "d"), - (0, "Whom would you like to delete?", ""), - (0, "What would you like to do?", "p"), - (0, "permanently delete your account?", "y"), - (0, "Disconnecting...", ""), -) - test_account1_teardown = ( (1, "What would you like to do?", "d"), (1, "Whom would you like to delete?", ""), @@ -119,6 +132,36 @@ test_account1_teardown = ( (1, "Disconnecting...", ""), ) +test_admin_setup = ( + (2, "Identify yourself:", "testadmin"), + (2, "Enter your choice:", "n"), + (2, "Enter a new password for \"testadmin\":", "Test789"), + (2, "Enter the same new password again:", "Test789"), + (2, "What would you like to do\?", "c"), + (2, "Pick a birth gender for your new avatar:", "m"), + (2, "Choose a name for him:", "1"), + (2, "What would you like to do?", "a"), + (2, "Whom would you like to awaken?", ""), +) + +test_admin_restriction = ( + (0, "> ", "help halt"), + (0, "That is not an available command\.", "halt"), + (0, '(not sure what "halt" means|Arglebargle, glop-glyf)', ""), +) + +test_admin_help = ( + (2, "> ", "help"), + (2, "halt.*Shut down the world\.", "help halt"), + (2, "This will save all active accounts", ""), +) + +test_show_log = ( + (2, "> ", "show log"), + (2, "There are [0-9]+ log lines in memory and [0-9]+ at or above level " + "[0-9]+\. The matching lines\r\nfrom [0-9]+ to [0-9]+ are:", ""), +) + dialogue = ( (test_account0_setup, "first account setup"), (test_account1_setup, "second account setup"), @@ -128,13 +171,17 @@ dialogue = ( (test_typo_replacement, "typo replacement"), (test_sentence_capitalization, "sentence capitalization"), (test_chat_mode, "chat mode"), + (test_movement, "movement"), (test_actor_disappears, "actor spontaneous disappearance"), - (test_account0_teardown, "first account teardown"), (test_account1_teardown, "second account teardown"), + (test_admin_setup, "admin account setup"), + (test_admin_restriction, "restricted admin commands"), + (test_admin_help, "admin help"), + (test_show_log, "show log"), ) -captures = ["", ""] -lusers = [telnetlib.Telnet(), telnetlib.Telnet()] +captures = ["", "", ""] +lusers = [telnetlib.Telnet(), telnetlib.Telnet(), telnetlib.Telnet()] success = True start = time.time() for luser in lusers: