More thoroughly test account and avatar menus
[mudpy.git] / mudpy / tests / selftest.py
index 86ffe22..d9a6ee0 100644 (file)
@@ -143,9 +143,48 @@ test_actor_disappears = (
     (0, r"You suddenly wonder where .* went\.", ""),
 )
 
     (0, r"You suddenly wonder where .* went\.", ""),
 )
 
-test_account1_teardown = (
+test_abort_avatar_deletion = (
     (1, r"What would you like to do\?", "d"),
     (1, r"Whom would you like to delete\?", ""),
     (1, r"What would you like to do\?", "d"),
     (1, r"Whom would you like to delete\?", ""),
+    (1, r"delete an unwanted avatar.*What would you like to do\?", ""),
+)
+
+test_avatar_creation_limit = (
+    (1, r"What would you like to do\?", "c"),
+    (1, "Pick a birth gender for your new avatar:", "m"),
+    (1, "Choose a name for him:", "3"),
+    (1, r"What would you like to do\?", "c"),
+    (1, "Pick a birth gender for your new avatar:", "m"),
+    (1, "Choose a name for him:", "4"),
+    (1, r"What would you like to do\?", "c"),
+    (1, "Pick a birth gender for your new avatar:", "m"),
+    (1, "Choose a name for him:", "7"),
+    (1, r"What would you like to do\?", "c"),
+    (1, "Pick a birth gender for your new avatar:", "m"),
+    (1, "Choose a name for him:", "5"),
+    (1, r"What would you like to do\?", "c"),
+    (1, "Pick a birth gender for your new avatar:", "m"),
+    (1, "Choose a name for him:", "2"),
+    (1, r"What would you like to do\?", "c"),
+    (1, "Pick a birth gender for your new avatar:", "m"),
+    (1, "Choose a name for him:", "6"),
+    (1, r"What would you like to do\?", "c"),
+    (1, r"That is not a valid choice\.\.\.", ""),
+)
+
+test_avatar_deletion = (
+    (1, r"What would you like to do\?", "d"),
+    (1, r"Whom would you like to delete\?", "1"),
+    (1, r"create a new avatar.*What would you like to do\?", ""),
+)
+
+test_abort_account_deletion = (
+    (1, r"What would you like to do\?", "p"),
+    (1, r"permanently delete your account\?", ""),
+    (1, r"What would you like to do\?", ""),
+)
+
+test_account_deletion = (
     (1, r"What would you like to do\?", "p"),
     (1, r"permanently delete your account\?", "y"),
     (1, r"Disconnecting\.\.\.", ""),
     (1, r"What would you like to do\?", "p"),
     (1, r"permanently delete your account\?", "y"),
     (1, r"Disconnecting\.\.\.", ""),
@@ -330,14 +369,10 @@ test_log_no_errors = (
 
 final_cleanup = (
     (0, "> ", "quit"),
 
 final_cleanup = (
     (0, "> ", "quit"),
-    (0, r"What would you like to do\?", "d"),
-    (0, r"Whom would you like to delete\?", ""),
     (0, r"What would you like to do\?", "p"),
     (0, r"permanently delete your account\?", "y"),
     (0, r"Disconnecting\.\.\.", ""),
     (2, "> ", "quit"),
     (0, r"What would you like to do\?", "p"),
     (0, r"permanently delete your account\?", "y"),
     (0, r"Disconnecting\.\.\.", ""),
     (2, "> ", "quit"),
-    (2, r"What would you like to do\?", "d"),
-    (2, r"Whom would you like to delete\?", ""),
     (2, r"What would you like to do\?", "p"),
     (2, r"permanently delete your account\?", "y"),
     (2, r"Disconnecting\.\.\.", ""),
     (2, r"What would you like to do\?", "p"),
     (2, r"permanently delete your account\?", "y"),
     (2, r"Disconnecting\.\.\.", ""),
@@ -357,7 +392,11 @@ dialogue = (
     (test_escape_macros, "replacement macros are escaped"),
     (test_movement, "movement"),
     (test_actor_disappears, "actor spontaneous disappearance"),
     (test_escape_macros, "replacement macros are escaped"),
     (test_movement, "movement"),
     (test_actor_disappears, "actor spontaneous disappearance"),
-    (test_account1_teardown, "second account teardown"),
+    (test_abort_avatar_deletion, "abort avatar deletion"),
+    (test_avatar_creation_limit, "avatar creation limit"),
+    (test_avatar_deletion, "avatar deletion"),
+    (test_abort_account_deletion, "abort account deletion"),
+    (test_account_deletion, "account deletion"),
     (test_admin_setup, "admin account setup"),
     (test_preferences, "set and show preferences"),
     (test_crlf_eol, "send crlf from the client as eol"),
     (test_admin_setup, "admin account setup"),
     (test_preferences, "set and show preferences"),
     (test_crlf_eol, "send crlf from the client as eol"),