mirror of
https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git
synced 2024-09-12 11:27:21 +00:00
This adds a new script - cleanup-needles.py - to use for cleaning up old needles. It has to be used in conjunction with a database query; the comment at the top explains how to do that query and export the needed information. It produces a git commit with needles that haven't matched since a certain date (specified in the sql query) removed, subject to a 'keeplist' of needles we keep even if they seem to be old. I also enhanced check-needles.py to check for cases where tests seem to be trying to match a tag we have no needles for. This was necessary to find cases where the cleanup script was too aggressive (i.e. the things that wound up in the 'keeplist'), but it also turned out to find quite a lot of cases where the code really *was* looking for a needle that had gone in a previous cleanup or that never existed; the commits before this one clean up a lot of those cases. The code to decide which string literals are needle tags is pretty dumb and hacky and needs some manual cueing sometimes - that's what the `# testtag` changes in this commit are for. Making it smarter would probably require this script to get a lot more complicated and either incorporate or become a tokenizer, which I don't really want to do. Signed-off-by: Adam Williamson <awilliam@redhat.com>
59 lines
1.9 KiB
Perl
59 lines
1.9 KiB
Perl
package freeipa;
|
|
|
|
use strict;
|
|
|
|
use base 'Exporter';
|
|
use Exporter;
|
|
|
|
use testapi;
|
|
use utils;
|
|
|
|
our @EXPORT = qw/add_user start_webui/;
|
|
|
|
# add a user with given username and surname, always uses the password
|
|
# "correcthorse". Assumes FreeIPA web UI is showing the Users screen.
|
|
sub add_user {
|
|
my ($user, $surname) = @_;
|
|
wait_still_screen 1;
|
|
assert_and_click "freeipa_webui_add_button";
|
|
assert_screen "freeipa_webui_add_user";
|
|
wait_still_screen 1;
|
|
type_safely $user;
|
|
wait_screen_change { send_key "tab"; };
|
|
# we don't need to be too careful here as the names don't matter
|
|
type_safely "Test";
|
|
wait_screen_change { send_key "tab"; };
|
|
type_safely $surname;
|
|
type_safely "\t\t\t\t";
|
|
type_safely "correcthorse";
|
|
wait_screen_change { send_key "tab"; };
|
|
type_safely "correcthorse\n";
|
|
}
|
|
|
|
# access the FreeIPA web UI and log in as a given user. Assumes
|
|
# it's at a console ready to start Firefox.
|
|
sub start_webui {
|
|
my ($user, $password) = @_;
|
|
# if we logged in as 'admin' we should land on the admin 'Active
|
|
# users' screen, otherwise we should land on the user's own page
|
|
my $user_screen = "freeipa_webui_user"; # testtag
|
|
$user_screen = "freeipa_webui_users" if ($user eq 'admin'); # testtag
|
|
|
|
type_string "startx /usr/bin/firefox -width 1024 -height 768 https://ipa001.test.openqa.fedoraproject.org\n";
|
|
assert_screen ["freeipa_webui_login", $user_screen], 60;
|
|
wait_still_screen(stilltime => 5, similarity_level => 45);
|
|
# softfail on kerberos ticket bugs meaning we get auto-logged in
|
|
# as the requested user when we don't expect to be
|
|
if (match_has_tag $user_screen) {
|
|
record_soft_failure "already logged in to web UI";
|
|
}
|
|
else {
|
|
type_safely $user;
|
|
wait_screen_change { send_key "tab"; };
|
|
type_safely $password;
|
|
send_key "ret";
|
|
assert_screen $user_screen;
|
|
}
|
|
wait_still_screen 3;
|
|
}
|