mirror of
				https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git
				synced 2025-10-30 23:05:58 +00:00 
			
		
		
		
	As suggested by @kparal, this adds a test that specifies an additional repository using a metalink. The repository contains a single package, 'testpackage', that supplements glibc (so it should always get installed). The test runs an install then checks that testpackage got installed. We also deduplicate a pair of needles which were matching on the same anaconda UI feature (an "add" button) and use that same needle in this test. Signed-off-by: Adam Williamson <awilliam@redhat.com>
		
			
				
	
	
		
			111 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
| use base "anacondatest";
 | |
| use strict;
 | |
| use testapi;
 | |
| use utils;
 | |
| use anaconda;
 | |
| use Time::HiRes qw( usleep );
 | |
| 
 | |
| sub main_repo {
 | |
|     # select appropriate protocol on the network
 | |
|     assert_and_click "anaconda_install_source_on_the_network";
 | |
|     send_key "tab";
 | |
|     wait_still_screen 2;
 | |
|     # select appropriate repo type for the URL by pressing 'up' a given
 | |
|     # number of times. default - 3 - is https
 | |
|     my $num = 3;
 | |
|     if (get_var("REPOSITORY_GRAPHICAL") =~ m/^nfs:/) {
 | |
|         $num = 1;
 | |
|     }
 | |
|     if (get_var("REPOSITORY_GRAPHICAL") =~ m/^http:/) {
 | |
|         $num = 4;
 | |
|     }
 | |
|     for (my $i=0; $i<$num; $i++) {
 | |
|         send_key "up";
 | |
|         usleep 100;
 | |
|     }
 | |
|     # we accept any of the protocol needles here, if we happened to
 | |
|     # choose wrong the test will fail soon anyhow
 | |
|     assert_screen "anaconda_install_source_selected";
 | |
| 
 | |
|     # insert the url
 | |
|     wait_screen_change { send_key "tab"; };
 | |
|     my $repourl = "";
 | |
| 
 | |
|     # if either MIRRORLIST_GRAPHICAL or REPOSITORY_GRAPHICAL is set, type this into
 | |
|     # the repository url input
 | |
|     if (get_var("MIRRORLIST_GRAPHICAL")) {
 | |
|         $repourl = get_mirrorlist_url();
 | |
|         type_safely $repourl;
 | |
| 
 | |
|         # select as mirror list
 | |
|         send_key "tab";
 | |
|         send_key "tab";
 | |
|         send_key "down";
 | |
|     }
 | |
|     elsif (get_var("REPOSITORY_GRAPHICAL")) {
 | |
|         $repourl = get_full_repo(get_var("REPOSITORY_GRAPHICAL"));
 | |
|         # strip the nfs and nfsvers prefix if present for typing here
 | |
|         $repourl =~ s/^nfs://;
 | |
|         $repourl =~ s/^nfsvers=.://;
 | |
|         type_safely $repourl;
 | |
|     }
 | |
| }
 | |
| 
 | |
| sub add_repo {
 | |
|     my $repourl = get_var("ADD_REPOSITORY_GRAPHICAL");
 | |
|     my $metalink;
 | |
|     if ($repourl =~ m/^ml:/) {
 | |
|         $metalink = 1;
 | |
|         $repourl =~ s/^ml://;
 | |
|     }
 | |
|     # configure an additional repository
 | |
|     assert_and_click "anaconda_add";
 | |
|     # shift-tab seven times gets us to the scheme box
 | |
|     for (my $i=0; $i<7; $i++) {
 | |
|         send_key "shift-tab";
 | |
|         usleep 100;
 | |
|     }
 | |
|     # select appropriate repo type for the URL by pressing 'down' a given
 | |
|     # number of times. default - 1 - is https
 | |
|     my $num = 1;
 | |
|     for (my $i=0; $i<$num; $i++) {
 | |
|         send_key "down";
 | |
|         usleep 100;
 | |
|     }
 | |
|     send_key "tab";
 | |
|     type_string $repourl;
 | |
|     if ($metalink) {
 | |
|         # select metalink in URL type dropdown
 | |
|         send_key "tab";
 | |
|         send_key "down";
 | |
|         send_key "down";
 | |
|     }
 | |
| }
 | |
| 
 | |
| sub run {
 | |
|     my $self = shift;
 | |
|     # Anaconda hub
 | |
|     assert_screen "anaconda_main_hub", 300;
 | |
| 
 | |
|     # Go into the Install Source spoke
 | |
|     assert_and_click "anaconda_main_hub_installation_source";
 | |
| 
 | |
|     main_repo() if (get_var("REPOSITORY_GRAPHICAL") || get_var("MIRRORLIST_GRAPHICAL"));
 | |
|     add_repo() if (get_var("ADD_REPOSITORY_GRAPHICAL"));
 | |
| 
 | |
|     assert_and_click "anaconda_spoke_done";
 | |
| 
 | |
|     # Anaconda hub
 | |
|     assert_screen "anaconda_main_hub", 300;
 | |
| 
 | |
| 
 | |
| }
 | |
| 
 | |
| sub test_flags {
 | |
|     return { fatal => 1 };
 | |
| }
 | |
| 
 | |
| 1;
 | |
| 
 | |
| # vim: set sw=4 et:
 |