action #125561
closedcoordination #121879: [epic] Improvements in the test automation framework with libyui-rest-api
Encapsulate the timeout scale multiplier in libyui-rest-api test framework
Description
Motivation¶
When we fix the ticket 124964, we could use code like this
my $timeout = YuiRestClient::get_timeout() * get_var('TIMEOUT_SCALE', 1);
my $product_selection = $testapi::distri->get_product_selection();
$product_selection->wait_product_selection_page({timeout => $timeout, message => 'Product Selection page is not displayed'});
But we should pass the timeout scale as a parameter to not introduce dependency with YuiRestClient in the Test Layer, then we would repeat that operation (multiplication) in several places in the code and we need some object to encapsulate it to avoid that. which looks like this:
$product_selection->wait_product_selection_page({timeout_scale => get_var('TIMEOUT_SCALE', 1), message => 'Product Selection page is not displayed'});
Inside wait_product_selection_page
and in other places like in perform_installation method applying this solution we will have to repeat this logic of multiplying the current timeout by the timeout_scale therefore, we should encapsulate somehow.
Acceptance criteria¶
AC1: Encapsulate logic of multiplying timeout by a factor so we don't repeat it in each Controller method for waiting some long process
Additional information¶
PR where this was discussed: https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/16462