Merge pull request #176182 from bobby285271/test-driver

nixos/test-driver: fix type hint for send_chars

authored by Robert Hensing and committed by GitHub 81128707 b3a4080b

+46 -40
+1 -1
nixos/lib/test-driver/test_driver/machine.py
··· 682 682 with self.nested("waiting for {} to appear on tty {}".format(regexp, tty)): 683 683 retry(tty_matches) 684 684 685 - def send_chars(self, chars: List[str]) -> None: 685 + def send_chars(self, chars: str) -> None: 686 686 with self.nested("sending keys ‘{}‘".format(chars)): 687 687 for char in chars: 688 688 self.send_key(char)
+5 -5
nixos/tests/ecryptfs.nix
··· 11 11 12 12 testScript = '' 13 13 def login_as_alice(): 14 - machine.wait_until_tty_matches(1, "login: ") 14 + machine.wait_until_tty_matches("1", "login: ") 15 15 machine.send_chars("alice\n") 16 - machine.wait_until_tty_matches(1, "Password: ") 16 + machine.wait_until_tty_matches("1", "Password: ") 17 17 machine.send_chars("foobar\n") 18 - machine.wait_until_tty_matches(1, "alice\@machine") 18 + machine.wait_until_tty_matches("1", "alice\@machine") 19 19 20 20 21 21 def logout(): 22 22 machine.send_chars("logout\n") 23 - machine.wait_until_tty_matches(1, "login: ") 23 + machine.wait_until_tty_matches("1", "login: ") 24 24 25 25 26 26 machine.wait_for_unit("default.target") ··· 36 36 with subtest("Log alice in (ecryptfs passwhrase is wrapped during first login)"): 37 37 login_as_alice() 38 38 machine.send_chars("logout\n") 39 - machine.wait_until_tty_matches(1, "login: ") 39 + machine.wait_until_tty_matches("1", "login: ") 40 40 41 41 # Why do I need to do this?? 42 42 machine.succeed("su alice -c ecryptfs-umount-private || true")
+3 -3
nixos/tests/login.nix
··· 29 29 machine.wait_until_succeeds("pgrep -f 'agetty.*tty2'") 30 30 31 31 with subtest("Log in as alice on a virtual console"): 32 - machine.wait_until_tty_matches(2, "login: ") 32 + machine.wait_until_tty_matches("2", "login: ") 33 33 machine.send_chars("alice\n") 34 - machine.wait_until_tty_matches(2, "login: alice") 34 + machine.wait_until_tty_matches("2", "login: alice") 35 35 machine.wait_until_succeeds("pgrep login") 36 - machine.wait_until_tty_matches(2, "Password: ") 36 + machine.wait_until_tty_matches("2", "Password: ") 37 37 machine.send_chars("foobar\n") 38 38 machine.wait_until_succeeds("pgrep -u alice bash") 39 39 machine.send_chars("touch done\n")
+11 -11
nixos/tests/pam/pam-oath-login.nix
··· 77 77 machine.screenshot("postboot") 78 78 79 79 with subtest("Invalid password"): 80 - switch_to_tty(2) 81 - enter_user_alice(2) 80 + switch_to_tty("2") 81 + enter_user_alice("2") 82 82 83 83 machine.send_chars("${oathSnakeOilPassword1}\n") 84 - machine.wait_until_tty_matches(2, "Password: ") 84 + machine.wait_until_tty_matches("2", "Password: ") 85 85 machine.send_chars("blorg\n") 86 - machine.wait_until_tty_matches(2, "Login incorrect") 86 + machine.wait_until_tty_matches("2", "Login incorrect") 87 87 88 88 with subtest("Invalid oath token"): 89 - switch_to_tty(3) 90 - enter_user_alice(3) 89 + switch_to_tty("3") 90 + enter_user_alice("3") 91 91 92 92 machine.send_chars("000000\n") 93 - machine.wait_until_tty_matches(3, "Login incorrect") 94 - machine.wait_until_tty_matches(3, "login:") 93 + machine.wait_until_tty_matches("3", "Login incorrect") 94 + machine.wait_until_tty_matches("3", "login:") 95 95 96 96 with subtest("Happy path: Both passwords are mandatory to get us in"): 97 - switch_to_tty(4) 98 - enter_user_alice(4) 97 + switch_to_tty("4") 98 + enter_user_alice("4") 99 99 100 100 machine.send_chars("${oathSnakeOilPassword2}\n") 101 - machine.wait_until_tty_matches(4, "Password: ") 101 + machine.wait_until_tty_matches("4", "Password: ") 102 102 machine.send_chars("${alicePassword}\n") 103 103 104 104 machine.wait_until_succeeds("pgrep -u alice bash")
+12 -12
nixos/tests/shadow.nix
··· 39 39 shadow.wait_until_succeeds("[ $(fgconsole) = 2 ]") 40 40 shadow.wait_for_unit("getty@tty2.service") 41 41 shadow.wait_until_succeeds("pgrep -f 'agetty.*tty2'") 42 - shadow.wait_until_tty_matches(2, "login: ") 42 + shadow.wait_until_tty_matches("2", "login: ") 43 43 shadow.send_chars("emma\n") 44 - shadow.wait_until_tty_matches(2, "login: emma") 44 + shadow.wait_until_tty_matches("2", "login: emma") 45 45 shadow.wait_until_succeeds("pgrep login") 46 46 shadow.sleep(2) 47 47 shadow.send_chars("${password1}\n") ··· 63 63 shadow.wait_until_succeeds("[ $(fgconsole) = 3 ]") 64 64 shadow.wait_for_unit("getty@tty3.service") 65 65 shadow.wait_until_succeeds("pgrep -f 'agetty.*tty3'") 66 - shadow.wait_until_tty_matches(3, "login: ") 66 + shadow.wait_until_tty_matches("3", "login: ") 67 67 shadow.send_chars("emma\n") 68 - shadow.wait_until_tty_matches(3, "login: emma") 68 + shadow.wait_until_tty_matches("3", "login: emma") 69 69 shadow.wait_until_succeeds("pgrep login") 70 70 shadow.sleep(2) 71 71 shadow.send_chars("${password1}\n") ··· 81 81 shadow.wait_until_succeeds("[ $(fgconsole) = 4 ]") 82 82 shadow.wait_for_unit("getty@tty4.service") 83 83 shadow.wait_until_succeeds("pgrep -f 'agetty.*tty4'") 84 - shadow.wait_until_tty_matches(4, "login: ") 84 + shadow.wait_until_tty_matches("4", "login: ") 85 85 shadow.send_chars("emma\n") 86 - shadow.wait_until_tty_matches(4, "login: emma") 86 + shadow.wait_until_tty_matches("4", "login: emma") 87 87 shadow.wait_until_succeeds("pgrep login") 88 88 shadow.sleep(2) 89 89 shadow.send_chars("${password1}\n") 90 - shadow.wait_until_tty_matches(4, "Login incorrect") 91 - shadow.wait_until_tty_matches(4, "login:") 90 + shadow.wait_until_tty_matches("4", "Login incorrect") 91 + shadow.wait_until_tty_matches("4", "login:") 92 92 shadow.send_chars("emma\n") 93 - shadow.wait_until_tty_matches(4, "login: emma") 93 + shadow.wait_until_tty_matches("4", "login: emma") 94 94 shadow.wait_until_succeeds("pgrep login") 95 95 shadow.sleep(2) 96 96 shadow.send_chars("${password3}\n") ··· 109 109 shadow.wait_until_succeeds("[ $(fgconsole) = 5 ]") 110 110 shadow.wait_for_unit("getty@tty5.service") 111 111 shadow.wait_until_succeeds("pgrep -f 'agetty.*tty5'") 112 - shadow.wait_until_tty_matches(5, "login: ") 112 + shadow.wait_until_tty_matches("5", "login: ") 113 113 shadow.send_chars("layla\n") 114 - shadow.wait_until_tty_matches(5, "login: layla") 114 + shadow.wait_until_tty_matches("5", "login: layla") 115 115 shadow.wait_until_succeeds("pgrep login") 116 116 shadow.send_chars("${password2}\n") 117 - shadow.wait_until_tty_matches(5, "login:") 117 + shadow.wait_until_tty_matches("5", "login:") 118 118 ''; 119 119 })
+6
nixos/tests/sway.nix
··· 4 4 maintainers = with lib.maintainers; [ primeos synthetica ]; 5 5 }; 6 6 7 + # testScriptWithTypes:49: error: Cannot call function of unknown type 8 + # (machine.succeed if succeed else machine.execute)( 9 + # ^ 10 + # Found 1 error in 1 file (checked 1 source file) 11 + skipTypeCheck = true; 12 + 7 13 nodes.machine = { config, ... }: { 8 14 # Automatically login on tty1 as a normal user: 9 15 imports = [ ./common/user-account.nix ];
+1 -1
nixos/tests/uptermd.nix
··· 42 42 43 43 client1.wait_for_unit("multi-user.target") 44 44 client1.wait_until_succeeds("pgrep -f 'agetty.*tty1'") 45 - client1.wait_until_tty_matches(1, "login: ") 45 + client1.wait_until_tty_matches("1", "login: ") 46 46 client1.send_chars("root\n") 47 47 client1.wait_until_succeeds("pgrep -u root bash") 48 48
+2 -2
nixos/tests/user-activation-scripts.nix
··· 19 19 20 20 machine.wait_for_unit("multi-user.target") 21 21 machine.wait_for_unit("getty@tty1.service") 22 - machine.wait_until_tty_matches(1, "login: ") 22 + machine.wait_until_tty_matches("1", "login: ") 23 23 machine.send_chars("alice\n") 24 - machine.wait_until_tty_matches(1, "Password: ") 24 + machine.wait_until_tty_matches("1", "Password: ") 25 25 machine.send_chars("pass1\n") 26 26 machine.send_chars("touch login-ok\n") 27 27 machine.wait_for_file("/home/alice/login-ok")
+2 -2
nixos/tests/user-home-mode.nix
··· 17 17 testScript = '' 18 18 machine.wait_for_unit("multi-user.target") 19 19 machine.wait_for_unit("getty@tty1.service") 20 - machine.wait_until_tty_matches(1, "login: ") 20 + machine.wait_until_tty_matches("1", "login: ") 21 21 machine.send_chars("alice\n") 22 - machine.wait_until_tty_matches(1, "Password: ") 22 + machine.wait_until_tty_matches("1", "Password: ") 23 23 machine.send_chars("pass1\n") 24 24 machine.succeed('[ "$(stat -c %a /home/alice)" == "700" ]') 25 25 machine.succeed('[ "$(stat -c %a /home/bob)" == "750" ]')
+3 -3
nixos/tests/zsh-history.nix
··· 21 21 default.wait_until_succeeds("pgrep -f 'agetty.*tty1'") 22 22 23 23 # Login 24 - default.wait_until_tty_matches(1, "login: ") 24 + default.wait_until_tty_matches("1", "login: ") 25 25 default.send_chars("root\n") 26 - default.wait_until_tty_matches(1, r"\nroot@default\b") 26 + default.wait_until_tty_matches("1", r"\nroot@default\b") 27 27 28 28 # Generate some history 29 29 default.send_chars("echo foobar\n") 30 - default.wait_until_tty_matches(1, "foobar") 30 + default.wait_until_tty_matches("1", "foobar") 31 31 32 32 # Ensure that command was recorded in history 33 33 default.succeed("/run/current-system/sw/bin/history list | grep -q foobar")