test(chore): Renamed and reorganized files and added files flow diagram
Renamed `startupSteps.py` to `commonInitSteps.py`. Cleanup `Processes` folder (not used). Moved `walletInitSteps.py` inside the own suite steps. Added files flow diagram. Closes #8353
This commit is contained in:
parent
0baa49c978
commit
ed42928f0b
|
@ -16,3 +16,5 @@ UI test application for **Status Desktop**
|
|||
* Save changes.
|
||||
|
||||
Now you should be able to create new suites, test cases and run the existing ones just only by clicking `Run` buttons!!
|
||||
|
||||
[Here](https://hackmd.io/@status-desktop/S19eu_Baq) a more detailed **installation guide** specific for this project.
|
File diff suppressed because one or more lines are too long
Binary file not shown.
Before Width: | Height: | Size: 140 KiB After Width: | Height: | Size: 125 KiB |
File diff suppressed because one or more lines are too long
Binary file not shown.
After Width: | Height: | Size: 44 KiB |
|
@ -1,127 +0,0 @@
|
|||
#******************************************************************************
|
||||
# Status.im
|
||||
#*****************************************************************************/
|
||||
#/**
|
||||
# * \file StatusLoginProcess.py
|
||||
# *
|
||||
# * \date February 2022
|
||||
# * \brief It defines the status login process.
|
||||
# *****************************************************************************/
|
||||
|
||||
from processes.StatusProcess import StatusProcess
|
||||
from screens.StatusLoginScreen import StatusLoginScreen
|
||||
from screens.StatusLoginScreen import PswPlaceholderTextType
|
||||
|
||||
# It defines the status login process.
|
||||
class StatusLoginProcess(StatusProcess):
|
||||
__login_screen = None
|
||||
__account = None
|
||||
__byKeycard = False
|
||||
__isBiometrics = False
|
||||
__step1_result = False
|
||||
__step2_result = False
|
||||
__step3_result = False
|
||||
|
||||
def __init__(self, account, isBiometrics=False):
|
||||
self.__account = account
|
||||
self.__byKeycard = (account.get_password() == None)
|
||||
self.__isBiometrics = isBiometrics
|
||||
|
||||
# It is used to check if the process can be run
|
||||
def can_execute_process(self):
|
||||
# Create current screen and verify if it is correctly loaded
|
||||
self.__login_screen = StatusLoginScreen()
|
||||
return self.__login_screen.is_loaded()
|
||||
|
||||
# It is used to execute the status login process steps.
|
||||
def execute_process(self, verify_success = True):
|
||||
self.__verify_success = verify_success
|
||||
|
||||
if(self.__account.get_password()):
|
||||
self.__execute_password_steps()
|
||||
else:
|
||||
raise NotImplementedError("TODO: __execute_keycard_steps")
|
||||
|
||||
# It is used to obtain the status login process output result.
|
||||
def get_process_result(self):
|
||||
result = False
|
||||
result_description = None
|
||||
|
||||
# Login by password:
|
||||
if(self.__account.get_password()):
|
||||
if not self.__step1_result:
|
||||
result_description = "Not possible to select the given account."
|
||||
|
||||
elif not self.__step2_result:
|
||||
result_description = "Not possible to introduce given password and submit."
|
||||
|
||||
elif not self.__step3_result and self.__verify_success:
|
||||
result_description = "Expected connection to Status Desktop failed."
|
||||
|
||||
elif not self.__step3_result and not self.__verify_success:
|
||||
result_description = "Expected error message not shown."
|
||||
|
||||
else:
|
||||
# All the steps have been correctly executed.
|
||||
result = True
|
||||
result_description = "Process steps succeeded!"
|
||||
|
||||
# Login by keycard:
|
||||
else:
|
||||
raise NotImplementedError("TODO: __execute_keycard_steps")
|
||||
|
||||
return result, result_description
|
||||
|
||||
# Step 1 - The user selects an account
|
||||
# Step 2 - The user enters a password
|
||||
# Step 3 - Verify login success / failure
|
||||
def __execute_password_steps(self):
|
||||
|
||||
# Step 1:
|
||||
self.__step1_result = self.__step_user_selects_account(self.__account.get_name())
|
||||
|
||||
# Step 2:
|
||||
self.__step2_result = self.__step_user_enters_password(self.__account.get_password())
|
||||
|
||||
# Step 3:
|
||||
if self.__verify_success:
|
||||
self.__step3_result = self.__verify_login_success()
|
||||
else:
|
||||
self.__step3_result = self.__verify_login_failure()
|
||||
|
||||
# It navigates through login screen to select the given account:
|
||||
def __step_user_selects_account(self, accountName):
|
||||
result = False
|
||||
if self.__login_screen and self.__login_screen.is_loaded():
|
||||
if self.__login_screen.open_accounts_selector_popup():
|
||||
accounts_popup = self.__login_screen.get_accounts_selector_popup()
|
||||
if accounts_popup.is_loaded():
|
||||
result = accounts_popup.select_account(accountName)
|
||||
return result
|
||||
|
||||
# It navigates through password input and submits the introduced one:
|
||||
def __step_user_enters_password(self, password):
|
||||
res1 = False
|
||||
res2 = False
|
||||
if self.__login_screen and self.__login_screen.is_loaded():
|
||||
res1 = self.__login_screen.introduce_password(password)
|
||||
res2 = self.__login_screen.submit_password()
|
||||
|
||||
return res1 & res2
|
||||
|
||||
# It inspects login screen and decides if login has been succeed:
|
||||
def __verify_login_success(self):
|
||||
res1 = False
|
||||
res2 = False
|
||||
if self.__login_screen and self.__login_screen.is_loaded():
|
||||
res1 = self.__login_screen.get_password_placeholder_text() == PswPlaceholderTextType.CONNECTING.value
|
||||
res2 = self.__login_screen.get_error_message_text() == ""
|
||||
return res1 & res2
|
||||
|
||||
# It inspects login screen and decides if it displays the expected failure information:
|
||||
def __verify_login_failure(self):
|
||||
result = False
|
||||
if self.__login_screen and self.__login_screen.is_loaded():
|
||||
result = self.__login_screen.get_error_message_text() == self.__login_screen.get_expected_error_message_text()
|
||||
return result
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
#******************************************************************************
|
||||
# Status.im
|
||||
#*****************************************************************************/
|
||||
#/**
|
||||
# * \file StatusProcess.py
|
||||
# *
|
||||
# * \date February 2022
|
||||
# * \brief Base template class to define testing status processes.
|
||||
# *****************************************************************************/
|
||||
|
||||
class StatusProcess:
|
||||
__context = None
|
||||
# Variable used to determine if it is needed to verify the process success or the process failure behavior
|
||||
__verify_success: bool = True
|
||||
|
||||
def __init__(self, context):
|
||||
self.__context = context
|
||||
|
||||
# It is used to check if the process can be run
|
||||
#@abstractmethod
|
||||
def can_execute_process(self):
|
||||
print("TODO: Invoke needed screen/s constructors")
|
||||
# ***
|
||||
# Below, the code to create the necessary status screen to execute the process.
|
||||
# ***
|
||||
|
||||
# It is used to execute the specific status process steps.
|
||||
#@abstractmethod
|
||||
def execute_process(self, verify_success: bool = True):
|
||||
self.__verify_success = verify_success
|
||||
print("TODO: Invoke navigations")
|
||||
# ***
|
||||
# Below, the code to invoke the necessary status screen's navigations.
|
||||
# ***
|
||||
|
||||
# It is used to obtain the status process output result.
|
||||
#@abstractmethod
|
||||
def get_process_result(self):
|
||||
result = False
|
||||
result_description = None
|
||||
|
||||
print("TODO: Validate process steps")
|
||||
# ***
|
||||
# Below, the code to validate status process steps.
|
||||
# ***
|
||||
|
||||
return result, result_description
|
|
@ -4,7 +4,7 @@
|
|||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../testSuites/global_shared/"))
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../src/"))
|
||||
|
||||
from steps.startupSteps import context_init
|
||||
from steps.commonInitSteps import context_init
|
||||
|
||||
@OnScenarioStart
|
||||
def hook(context):
|
||||
|
|
|
@ -11,6 +11,7 @@ from screens.StatusChatScreen import StatusChatScreen
|
|||
from screens.StatusCommunityPortalScreen import StatusCommunityPortalScreen
|
||||
from screens.StatusCommunityScreen import StatusCommunityScreen
|
||||
from screens.StatusLoginScreen import StatusLoginScreen
|
||||
from screens.SettingsScreen import SettingsScreen
|
||||
|
||||
# Project settings properties:
|
||||
_status_desktop_app_name = "nim_status_client"
|
||||
|
@ -151,4 +152,13 @@ def the_user_opens_app_settings_screen():
|
|||
def the_user_navigates_back_to_user_profile_page():
|
||||
welcome_screen = StatusWelcomeScreen()
|
||||
welcome_screen.navigate_back_to_user_profile_page()
|
||||
|
||||
|
||||
def the_user_activates_wallet_and_opens_the_wallet_section():
|
||||
settings_screen = SettingsScreen()
|
||||
settings_screen.activate_open_wallet_section()
|
||||
|
||||
def the_user_toggles_test_networks():
|
||||
settings_screen = SettingsScreen()
|
||||
settings_screen.toggle_test_networks()
|
||||
main_screen = StatusMainScreen()
|
||||
main_screen.click_tool_bar_back_button()
|
|
@ -1,5 +1,4 @@
|
|||
import steps.startupSteps as common_init_steps
|
||||
import steps.walletInitSteps as wallet_init_steps
|
||||
import steps.commonInitSteps as init_steps
|
||||
|
||||
from screens.StatusMainScreen import StatusMainScreen
|
||||
from screens.SettingsScreen import SettingsScreen
|
||||
|
@ -27,11 +26,11 @@ def step(context: any):
|
|||
|
||||
@Given("the user activates wallet and opens the wallet section")
|
||||
def step(context: any):
|
||||
wallet_init_steps.the_user_activates_wallet_and_opens_the_wallet_section()
|
||||
init_steps.the_user_activates_wallet_and_opens_the_wallet_section()
|
||||
|
||||
@Given("the user toggles test networks")
|
||||
def step(context: any):
|
||||
wallet_init_steps.the_user_toggles_test_networks()
|
||||
init_steps.the_user_toggles_test_networks()
|
||||
|
||||
@Given("the user activates wallet")
|
||||
def step(context: any):
|
||||
|
@ -233,7 +232,7 @@ def step(context, display_name):
|
|||
###########################################################################
|
||||
|
||||
def the_user_opens_app_settings_screen():
|
||||
common_init_steps.the_user_opens_app_settings_screen()
|
||||
init_steps.the_user_opens_app_settings_screen()
|
||||
|
||||
def the_user_opens_the_messaging_settings():
|
||||
_settingsScreen.open_messaging_settings()
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
import common.Common as common
|
||||
import time
|
||||
|
||||
import steps.startupSteps as init_steps
|
||||
import steps.commonInitSteps as init_steps
|
||||
from screens.StatusMainScreen import StatusMainScreen
|
||||
from screens.StatusChatScreen import StatusChatScreen
|
||||
|
||||
|
@ -29,7 +29,7 @@ _statusChat = StatusChatScreen()
|
|||
|
||||
@Given("the user starts the application with a specific data folder \"|any|\"")
|
||||
def step(context, data_folder_path):
|
||||
common.a_user_starts_the_application_with_a_specific_data_folder(context, data_folder_path)
|
||||
init_steps.a_user_starts_the_application_with_a_specific_data_folder(context, data_folder_path)
|
||||
|
||||
@Given("the user restarts the app")
|
||||
def step(context):
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import steps.startupSteps as init_steps
|
||||
import steps.commonInitSteps as init_steps
|
||||
from screens.StatusMainScreen import StatusMainScreen
|
||||
from screens.StatusCommunityPortalScreen import StatusCommunityPortalScreen
|
||||
from screens.StatusCommunityScreen import StatusCommunityScreen
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../testSuites/global_shared/"))
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../src/"))
|
||||
|
||||
import steps.startupSteps as init_steps
|
||||
import steps.commonInitSteps as init_steps
|
||||
|
||||
# Global properties for the specific feature
|
||||
_user = "tester123"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../testSuites/global_shared/"))
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../src/"))
|
||||
|
||||
from steps.startupSteps import *
|
||||
import steps.commonInitSteps as init_steps
|
||||
|
||||
# Global properties for the specific feature
|
||||
_user = "tester123"
|
||||
|
@ -12,8 +12,8 @@ _password = "TesTEr16843/!@00"
|
|||
|
||||
@OnFeatureStart
|
||||
def hook(context):
|
||||
context_init(context)
|
||||
signs_up_process_steps(context, _user, _password)
|
||||
init_steps.context_init(context)
|
||||
init_steps.signs_up_process_steps(context, _user, _password)
|
||||
|
||||
@OnFeatureEnd
|
||||
def hook(context):
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../testSuites/global_shared/"))
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../src/"))
|
||||
|
||||
import steps.startupSteps as init_steps
|
||||
import steps.commonInitSteps as init_steps
|
||||
|
||||
# Global properties for the specific feature
|
||||
_user = "tester123"
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<testconfig version="1.0">
|
||||
<information>
|
||||
<summary/>
|
||||
<description/>
|
||||
</information>
|
||||
<testsettings/>
|
||||
<passwords/>
|
||||
<information>
|
||||
<summary/>
|
||||
<description/>
|
||||
</information>
|
||||
<testsettings/>
|
||||
<passwords/>
|
||||
</testconfig>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
from random import randint
|
||||
from steps.startupSteps import *
|
||||
import steps.commonInitSteps as init_steps
|
||||
from screens.StatusMainScreen import StatusMainScreen
|
||||
from screens.StatusChatScreen import StatusChatScreen
|
||||
from screens.StatusCreateChatScreen import StatusCreateChatScreen
|
||||
|
@ -276,7 +276,7 @@ def the_group_chat_is_created():
|
|||
_statusChat = StatusChatScreen()
|
||||
|
||||
def the_user_opens_the_chat_section():
|
||||
the_user_opens_the_chat_section()
|
||||
init_steps.the_user_opens_the_chat_section()
|
||||
|
||||
def the_user_sends_a_random_chat_message(context):
|
||||
random_int = randint(0, 10000)
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../testSuites/global_shared/"))
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../src/"))
|
||||
|
||||
import steps.startupSteps as init_steps
|
||||
import steps.commonInitSteps as init_steps
|
||||
|
||||
# Global properties for the specific feature
|
||||
_user = "tester123"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import steps.startupSteps as init_steps
|
||||
import steps.commonInitSteps as init_steps
|
||||
from screens.StatusWelcomeScreen import StatusWelcomeScreen
|
||||
from screens.StatusMainScreen import StatusMainScreen
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../testSuites/global_shared/"))
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../src/"))
|
||||
|
||||
import steps.startupSteps as init_steps
|
||||
import steps.commonInitSteps as init_steps
|
||||
|
||||
# Global properties for the specific feature
|
||||
_user = "tester123"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../testSuites/global_shared/"))
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../src/"))
|
||||
|
||||
import steps.startupSteps as init_steps
|
||||
import steps.commonInitSteps as init_steps
|
||||
|
||||
# Global properties for the specific feature
|
||||
_user = "tester123"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../testSuites/global_shared/"))
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../src/"))
|
||||
|
||||
import steps.startupSteps as init_steps
|
||||
import steps.commonInitSteps as init_steps
|
||||
|
||||
# Global properties for the specific feature
|
||||
_user = "tester123"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../testSuites/global_shared/"))
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../src/"))
|
||||
|
||||
import steps.startupSteps as init_steps
|
||||
import steps.commonInitSteps as init_steps
|
||||
|
||||
# Global properties for the specific feature
|
||||
_user = "tester123"
|
||||
|
|
|
@ -1,22 +1,18 @@
|
|||
"""It defines wallet specific starting-up or driving-the-app-into-an-idle-state static methods outside bdd context
|
||||
that can be reused in different `hooks` as well as in specific bdd steps files."""
|
||||
|
||||
import steps.startupSteps as common_init_steps
|
||||
import steps.commonInitSteps as init_steps
|
||||
from screens.StatusMainScreen import StatusMainScreen
|
||||
from screens.SettingsScreen import SettingsScreen
|
||||
from screens.StatusWalletScreen import StatusWalletScreen
|
||||
|
||||
def the_user_activates_wallet_and_opens_the_wallet_section():
|
||||
settings_screen = SettingsScreen()
|
||||
settings_screen.activate_open_wallet_section()
|
||||
|
||||
def the_user_accepts_the_signing_phrase():
|
||||
wallet_screen = StatusWalletScreen()
|
||||
wallet_screen.accept_signing_phrase()
|
||||
|
||||
def activate_and_open_wallet():
|
||||
common_init_steps.the_user_opens_app_settings_screen()
|
||||
the_user_activates_wallet_and_opens_the_wallet_section()
|
||||
init_steps.the_user_opens_app_settings_screen()
|
||||
init_steps.the_user_activates_wallet_and_opens_the_wallet_section()
|
||||
the_user_accepts_the_signing_phrase()
|
||||
|
||||
def the_user_activates_wallet():
|
||||
|
@ -28,21 +24,15 @@ def the_user_opens_the_wallet_settings():
|
|||
settings_screen.open_wallet_settings()
|
||||
|
||||
def enable_wallet_section():
|
||||
common_init_steps.the_user_opens_app_settings_screen()
|
||||
init_steps.the_user_opens_app_settings_screen()
|
||||
the_user_activates_wallet()
|
||||
|
||||
def the_user_toggles_test_networks():
|
||||
settings_screen = SettingsScreen()
|
||||
settings_screen.toggle_test_networks()
|
||||
main_screen = StatusMainScreen()
|
||||
main_screen.click_tool_bar_back_button()
|
||||
|
||||
def the_user_opens_wallet_screen():
|
||||
main_screen = StatusMainScreen()
|
||||
main_screen.open_wallet()
|
||||
|
||||
def toggle_test_networks():
|
||||
the_user_opens_the_wallet_settings()
|
||||
the_user_toggles_test_networks()
|
||||
init_steps.the_user_toggles_test_networks()
|
||||
the_user_opens_wallet_screen()
|
||||
the_user_accepts_the_signing_phrase()
|
|
@ -1,4 +1,4 @@
|
|||
import steps.walletInitSteps as wallet_init_steps
|
||||
import walletInitSteps as wallet_init_steps
|
||||
|
||||
from screens.StatusMainScreen import StatusMainScreen
|
||||
from screens.StatusWalletScreen import StatusWalletScreen
|
||||
|
|
|
@ -3,9 +3,10 @@
|
|||
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../testSuites/global_shared/"))
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../src/"))
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../shared/steps/"))
|
||||
|
||||
import steps.startupSteps as common_init_steps
|
||||
import steps.walletInitSteps as wallet_init_steps
|
||||
import steps.commonInitSteps as common_init_steps
|
||||
import walletInitSteps as wallet_init_steps
|
||||
|
||||
# Global properties for the specific feature
|
||||
_user = "tester123"
|
||||
|
|
|
@ -3,9 +3,10 @@
|
|||
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../testSuites/global_shared/"))
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../src/"))
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../shared/steps/"))
|
||||
|
||||
import steps.startupSteps as common_init_steps
|
||||
import steps.walletInitSteps as wallet_init_steps
|
||||
import steps.commonInitSteps as init_steps
|
||||
import walletInitSteps as wallet_init_steps
|
||||
|
||||
# Global properties for the specific feature
|
||||
_user = "tester123"
|
||||
|
@ -14,7 +15,7 @@ _password = "TesTEr16843/!@00"
|
|||
@OnFeatureStart
|
||||
def hook(context):
|
||||
context_init(context)
|
||||
common_init_steps.signs_up_process_steps(context, _user, _password)
|
||||
init_steps.signs_up_process_steps(context, _user, _password)
|
||||
wallet_init_steps.activate_and_open_wallet()
|
||||
|
||||
@OnFeatureEnd
|
||||
|
|
Loading…
Reference in New Issue