Skip to content

Commit 3a3fa44

Browse files
test: Add helper function for system admin user
Co-authored-by: Luna D Dragon <luna.dragon@suse.com>
1 parent 810f537 commit 3a3fa44

File tree

3 files changed

+21
-13
lines changed

3 files changed

+21
-13
lines changed

test/common/testlib.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2534,6 +2534,10 @@ def enable_root_login(self) -> None:
25342534
if not self.machine.ws_container and self.file_exists(disallowed_conf):
25352535
self.sed_file('/root/d', disallowed_conf)
25362536

2537+
def get_sudo_user(self) -> str:
2538+
# In (open)SUSE images, superuser access always requires the root password
2539+
return "root" if "suse" in self.image else "admin"
2540+
25372541
def reboot(self, timeout_sec: int | None = None) -> None:
25382542
self.allow_restart_journal_messages()
25392543
if timeout_sec is None:
@@ -2596,7 +2600,6 @@ def get_decorator(method: object, class_: object, name: str, default: Any = None
25962600
attr = "_testlib__" + name
25972601
return getattr(method, attr, getattr(class_, attr, default))
25982602

2599-
26002603
###########################
26012604
# Test decorators
26022605
#

test/verify/check-superuser

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ class TestSuperuser(testlib.MachineCase):
5858
b.wait_text(".pf-v6-c-modal-box__title-text", "Switch to administrative access")
5959
if "ubuntu" not in m.image and "debian" not in m.image:
6060
b.wait_in_text(".pf-v6-c-modal-box", "We trust you have received the usual lecture")
61-
b.wait_in_text(".pf-v6-c-modal-box", "Password for admin:")
61+
user = self.get_sudo_user()
62+
b.wait_in_text(".pf-v6-c-modal-box", f"Password for {user}:")
6263
b.set_input_text(".pf-v6-c-modal-box input", "foobar")
6364
b.focus(".pf-v6-c-modal-box button:contains('Cancel')")
6465
b.assert_pixels(".pf-v6-c-modal-box", "superuser-modal",
@@ -143,7 +144,8 @@ session include system-auth
143144

144145
b.open_superuser_dialog()
145146
b.wait_text(".pf-v6-c-modal-box__title-text", "Switch to administrative access")
146-
b.wait_in_text(".pf-v6-c-modal-box", "Password for admin:")
147+
user = self.get_sudo_user()
148+
b.wait_in_text(".pf-v6-c-modal-box", f"Password for {user}:")
147149
# Let the dialog sit there for 45 seconds, to test that this doesn't trigger a D-Bus timeout.
148150
time.sleep(45)
149151
b.set_input_text(".pf-v6-c-modal-box input", "foobar")
@@ -160,17 +162,17 @@ session include system-auth
160162
# Log in with limited access
161163
self.login_and_go(superuser=False)
162164
b.check_superuser_indicator("Limited access")
163-
165+
user = self.get_sudo_user()
164166
b.open_superuser_dialog()
165167
b.wait_text(".pf-v6-c-modal-box__title-text", "Switch to administrative access")
166-
b.wait_in_text(".pf-v6-c-modal-box", "Password for admin:")
168+
b.wait_in_text(".pf-v6-c-modal-box", f"Password for {user}:")
167169
b.set_input_text(".pf-v6-c-modal-box input", "wrong")
168170
b.click(".pf-v6-c-modal-box button:contains('Authenticate')")
169-
b.wait_in_text(".pf-v6-c-modal-box", "Password for admin:")
171+
b.wait_in_text(".pf-v6-c-modal-box", f"Password for {user}:")
170172
b.wait_in_text(".pf-v6-c-modal-box", "Sorry, try again")
171173
b.set_input_text(".pf-v6-c-modal-box input", "wronger")
172174
b.click(".pf-v6-c-modal-box button:contains('Authenticate')")
173-
b.wait_in_text(".pf-v6-c-modal-box", "Password for admin:")
175+
b.wait_in_text(".pf-v6-c-modal-box", f"Password for {user}:")
174176
b.wait_in_text(".pf-v6-c-modal-box", "Sorry, try again")
175177
b.set_input_text(".pf-v6-c-modal-box input", "wrongest")
176178
b.click(".pf-v6-c-modal-box button:contains('Authenticate')")
@@ -194,6 +196,7 @@ session include system-auth
194196
m.execute(f"gpasswd -d admin {m.get_admin_group()}")
195197

196198
self.login_and_go()
199+
user = self.get_sudo_user()
197200
b.check_superuser_indicator("Limited access")
198201

199202
b.open_superuser_dialog()
@@ -207,11 +210,10 @@ session include system-auth
207210

208211
# no stray/hanging sudo process
209212
testlib.wait(lambda: "sudo" not in m.execute("loginctl --lines=0 user-status admin"), tries=5)
210-
211213
# cancelling auth dialog stops sudo
212214
b.open_superuser_dialog()
213215
b.wait_in_text(".pf-v6-c-modal-box", "Switch to administrative access")
214-
b.wait_in_text(".pf-v6-c-modal-box", "Password for admin")
216+
b.wait_in_text(".pf-v6-c-modal-box", f"Password for {user}")
215217
status = m.execute("loginctl --lines=0 user-status admin")
216218
self.assertIn("sudo", status)
217219
if not m.ws_container:
@@ -224,7 +226,7 @@ session include system-auth
224226

225227
# logging out cleans up pending sudo auth; user should either go to "State: closing" or disappear completely
226228
b.open_superuser_dialog()
227-
b.wait_in_text(".pf-v6-c-modal-box", "Password for admin")
229+
b.wait_in_text(".pf-v6-c-modal-box", f"Password for {user}")
228230
if not m.ws_container:
229231
self.assertIn("cockpit-askpass", m.execute("loginctl --lines=0 user-status admin"))
230232
b.click(".pf-v6-c-modal-box button:contains('Cancel')")
@@ -430,11 +432,12 @@ session include system-auth
430432

431433
# Run the regular sudo method, which should work as always
432434
b.open_superuser_dialog()
435+
user = self.get_sudo_user()
433436
b.wait_text(".pf-v6-c-modal-box__title-text", "Switch to administrative access")
434437
b.set_val(".pf-v6-c-modal-box select", "Sudo")
435438
b.wait_in_text(".pf-v6-c-modal-box select", "Sudo")
436439
b.click(".pf-v6-c-modal-box button:contains('Authenticate')")
437-
b.wait_in_text(".pf-v6-c-modal-box", "Password for admin:")
440+
b.wait_in_text(".pf-v6-c-modal-box", f"Password for {user}:")
438441
b.set_input_text(".pf-v6-c-modal-box input", "foobar")
439442
b.click(".pf-v6-c-modal-box button:contains('Authenticate')")
440443
b.wait_not_present(".pf-v6-c-modal-box")
@@ -444,10 +447,11 @@ session include system-auth
444447
b = self.browser
445448

446449
self.login_and_go("/system", superuser=False)
450+
user = self.get_sudo_user()
447451
b.wait_in_text(".ct-limited-access-alert", "Web console is running in limited access mode.")
448452
b.click(".ct-limited-access-alert button")
449453
b.wait_text(".pf-v6-c-modal-box__title-text", "Switch to administrative access")
450-
b.wait_in_text(".pf-v6-c-modal-box", "Password for admin:")
454+
b.wait_in_text(".pf-v6-c-modal-box", f"Password for {user}:")
451455
b.set_input_text(".pf-v6-c-modal-box input", "foobar")
452456
b.click(".pf-v6-c-modal-box button:contains('Authenticate')")
453457
b.wait_not_present(".pf-v6-c-modal-box")

test/verify/check-system-info

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -899,10 +899,11 @@ class TestSystemInfoTime(packagelib.PackageCase):
899899
b.wait_visible('#system_information_systime_button[disabled]')
900900

901901
# Gain admin access
902+
user = testlib.get_sudo_user(m.image)
902903
b.wait_in_text(".ct-limited-access-alert", "Web console is running in limited access mode.")
903904
b.click(".ct-limited-access-alert button")
904905
b.wait_text(".pf-v6-c-modal-box__title-text", "Switch to administrative access")
905-
b.wait_in_text(".pf-v6-c-modal-box", "Password for admin:")
906+
b.wait_in_text(".pf-v6-c-modal-box", f"Password for {user}:")
906907
b.set_input_text(".pf-v6-c-modal-box input", "foobar")
907908
b.click(".pf-v6-c-modal-box button:contains('Authenticate')")
908909
b.wait_not_present(".pf-v6-c-modal-box")

0 commit comments

Comments
 (0)