mirror of
https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git
synced 2025-11-08 11:06:00 +00:00
Summary:
this handles Non-English European Language Install. Basically
it's a bunch of new screenshots for existing tag names, plus
a bit of configurability in _boot_to_anaconda and tweaking some
existing needles to do non-text matches. The weird 'half-the-
icon' needles are for cases where there may or may not be a
warning triangle but we want to click it either way (saves
duplicating the needle).
This also sets up a convention for tagging what languages a
needle is appropriate for. If it's specifically appropriate for
one or more languages, a tag ENV-LANGUAGE-(LANGUAGE) should be
applied for each language, where (LANGUAGE) is the install
language in upper-case ('LANGUAGE' variable, which should also
be the string that will be typed into the language selection
screen). If the needle ought to be used for *all* languages -
i.e. it's not a text match, or any text in the match is known
not to be translated - the tag ENV-INSTLANG-ALL should be
applied.
To back this, main.pm now unregisters all needles that are not
tagged with either ENV-LANGUAGE-ALL or the tag for the language
actually being used (if the LANGUAGE var is not set, we assume
english). The point of this is to check the install is actually
translated; if we allow all needles to match, the test would
pass even if no translations appeared at all.
Test Plan:
Run all tests and make sure you get the expected
results. You can schedule a run against 23 Beta TC1 to see the
French test fails 'correctly' when translations are missing.
Reviewers: jskladan, garretraziel
Reviewed By: garretraziel
Subscribers: tflink
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D577
79 lines
2.5 KiB
Perl
79 lines
2.5 KiB
Perl
use base "anacondatest";
|
|
use strict;
|
|
use testapi;
|
|
|
|
sub run {
|
|
# Wait for bootloader to appear
|
|
assert_screen "bootloader", 30;
|
|
|
|
# Make sure we skip media check if it's selected by default. Standard
|
|
# 'boot installer' menu entry is always first.
|
|
send_key "up";
|
|
send_key "up";
|
|
|
|
# if variable GRUB is set, add its value into kernel line in grub
|
|
if( get_var("GRUB")){
|
|
send_key "tab";
|
|
type_string " ".get_var("GRUB");
|
|
|
|
}
|
|
|
|
# if variable REPOSITORY_VARIATION is set, construct inst.repo url and add it to kernel line
|
|
if (get_var("REPOSITORY_VARIATION")){
|
|
unless (get_var("GRUB")){
|
|
send_key "tab";
|
|
}
|
|
my $fedora_version = "";
|
|
my $repourl = "";
|
|
|
|
$fedora_version = lc((split /_/, get_var("BUILD"))[0]);
|
|
|
|
# REPOSITORY_VARIATION should be set to repository URL without version and architecture
|
|
# appended (it will be appended automatically)
|
|
$repourl = get_var("REPOSITORY_VARIATION")."/".$fedora_version."/".get_var("ARCH")."/os";
|
|
type_string " inst.repo=".$repourl;
|
|
}
|
|
|
|
# now we are on the correct "boot" menu item
|
|
send_key "ret";
|
|
|
|
unless (get_var("KICKSTART"))
|
|
{
|
|
# on lives, we have to explicitly launch anaconda
|
|
if (get_var('LIVE')) {
|
|
assert_and_click "live_start_anaconda_icon", '', 300;
|
|
}
|
|
my $language = get_var('LANGUAGE') || 'english';
|
|
# wait for anaconda to appear
|
|
assert_screen "anaconda_select_install_lang", 300;
|
|
# Select install language
|
|
assert_and_click "anaconda_select_install_lang_input";
|
|
type_string "${language}";
|
|
# Needle filtering in main.pm ensures we will only look for the
|
|
# appropriate language, here
|
|
assert_and_click "anaconda_select_install_lang_filtered";
|
|
assert_screen "anaconda_select_install_lang_selected", 3;
|
|
assert_and_click "anaconda_select_install_lang_continue";
|
|
|
|
if ( check_screen "anaconda_rawhide_accept_fate" ) {
|
|
assert_and_click "anaconda_rawhide_accept_fate";
|
|
}
|
|
|
|
# wait for Anaconda hub to appear
|
|
assert_screen "anaconda_main_hub", 900; #
|
|
}
|
|
}
|
|
|
|
|
|
sub test_flags {
|
|
# without anything - rollback to 'lastgood' snapshot if failed
|
|
# 'fatal' - whole test suite is in danger if this fails
|
|
# 'milestone' - after this test succeeds, update 'lastgood'
|
|
# 'important' - if this fails, set the overall state to 'fail'
|
|
return { fatal => 1 };
|
|
}
|
|
|
|
1;
|
|
|
|
# vim: set sw=4 et:
|