Source code for univention.testing.browser.systemdiagnostics
#!/usr/bin/python3
# SPDX-FileCopyrightText: 2023-2025 Univention GmbH
# SPDX-License-Identifier: AGPL-3.0-only
from playwright.sync_api import Page, expect
from univention.lib.i18n import Translation
from univention.testing.browser.lib import MIN, UMCBrowserTest
_ = Translation('ucs-test-framework').translate
[docs]
class SystemDiagnostic:
def __init__(self, tester: UMCBrowserTest):
self.tester: UMCBrowserTest = tester
self.page: Page = tester.page
self.module_name = _('System diagnostic')
[docs]
def navigate(self, username='Administrator', password='univention'):
self.tester.login(username, password)
self.tester.open_module(self.module_name)
self.wait_for_system_diagnostics_to_finish()
[docs]
def run_system_diagnostics(self):
self.page.get_by_role('button', name=_('Run system diagnosis')).click()
self.wait_for_system_diagnostics_to_finish()
[docs]
def wait_for_system_diagnostics_to_finish(self):
progress_bar = self.page.get_by_role('progressbar')
try:
expect(progress_bar).to_be_visible(timeout=1 * MIN)
expect(progress_bar).to_be_hidden(timeout=5 * MIN)
except AssertionError:
pass