X-Git-Url: https://mudpy.org/gitweb?p=mudpy.git;a=blobdiff_plain;f=bin%2Ftest;h=b1b4688f69012afc0e40e22f35a92b990d773b39;hp=25a171b16546528533cc23926f3aa5d900ca758d;hb=352dbcbc9423c723d7d9bf67d85950e98ea7e5fb;hpb=8a4c063f57b6ef34ba25786fc461c9c5857fb45a diff --git a/bin/test b/bin/test index 25a171b..b1b4688 100755 --- a/bin/test +++ b/bin/test @@ -7,6 +7,7 @@ import sys import telnetlib +import time test_account0_setup = ( (0, "Identify yourself:", "luser0"), @@ -86,6 +87,38 @@ test_sentence_capitalization = ( (1, 'says, "This sentence', ""), ) +test_chat_mode = ( + (1, '> ', "chat"), + (1, '> \(chat\) ', "Feeling chatty."), + (1, 'You say, "Feeling chatty\."', "!chat"), + (0, 'says, "Feeling chatty\."', ""), + (1, '> ', "say Now less chatty."), + (1, 'You say, "Now less chatty\."', ""), + (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\.", ""), @@ -116,6 +149,8 @@ dialogue = ( (test_implicit_punctuation, "implicit punctuation"), (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"), @@ -124,10 +159,12 @@ dialogue = ( captures = ["", ""] lusers = [telnetlib.Telnet(), telnetlib.Telnet()] success = True +start = time.time() for luser in lusers: luser.open("::1", 6669) for test, description in dialogue: print("\nTesting %s..." % description) + test_start = time.time() for conversant, question, answer in test: print("luser%s waiting for: %s" % (conversant, question)) index, match, received = lusers[conversant].expect( @@ -139,13 +176,19 @@ for test, description in dialogue: except: pass if index is not 0: - print("ERROR: luser%s did not receive expected string:\n\n%s" - % (conversant, question)) + print("ERROR: luser%s did not receive expected string:\n\n%s\n\n" + "Check the end of capture_%s.log for received data." + % (conversant, question, conversant)) success = False break print("luser%s sending: %s" % (conversant, answer)) lusers[conversant].write(("%s\r\n" % answer).encode("utf-8")) captures[conversant] += "%s\r\n" % answer + if not success: + break + print("Completed in %.3f seconds." % (time.time() - test_start)) +duration = time.time() - start +print("") for conversant in range(len(captures)): try: captures[conversant] += lusers[ @@ -153,8 +196,14 @@ for conversant in range(len(captures)): except: pass lusers[conversant].close() - log = open("capture_%s.log" % conversant, "w") + logfile = "capture_%s.log" % conversant + print("Recording session %s as %s." % (conversant, logfile)) + log = open(logfile, "w") log.write(captures[conversant]) log.close() -if not success: +print("\nRan %s tests in %.3f seconds." % (len(dialogue), duration)) +if success: + print("SUCCESS") +else: + print("FAILURE") sys.exit(1)