import sys
import telnetlib
+import time
test_account0_setup = (
(0, "Identify yourself:", "luser0"),
(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\.", ""),
(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"),
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(
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[
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)