chore: use L2 networks for minting community tokens
This commit is contained in:
parent
fdefaf5a54
commit
43dff60e79
|
@ -30,7 +30,7 @@ class MintOwnerTokensElements(Enum):
|
||||||
MASTER_TOKEN_CHEKLIST_ELEMENT_3 = 'Ability to mint and airdrop Community tokens'
|
MASTER_TOKEN_CHEKLIST_ELEMENT_3 = 'Ability to mint and airdrop Community tokens'
|
||||||
MASTER_TOKEN_CHEKLIST_ELEMENT_4 = 'Non-transferrable'
|
MASTER_TOKEN_CHEKLIST_ELEMENT_4 = 'Non-transferrable'
|
||||||
MASTER_TOKEN_CHEKLIST_ELEMENT_5 = 'Remotely destructible by the Owner token hodler'
|
MASTER_TOKEN_CHEKLIST_ELEMENT_5 = 'Remotely destructible by the Owner token hodler'
|
||||||
SIGN_TRANSACTION_MINT_TITLE = ' Owner and TokenMaster tokens on Mainnet'
|
SIGN_TRANSACTION_MINT_TITLE = ' Owner and TokenMaster tokens on '
|
||||||
OWNER_TOKEN_NAME = 'Owner-'
|
OWNER_TOKEN_NAME = 'Owner-'
|
||||||
MASTER_TOKEN_NAME = 'TMaster-'
|
MASTER_TOKEN_NAME = 'TMaster-'
|
||||||
OWNER_TOKEN_SYMBOL = 'OWN'
|
OWNER_TOKEN_SYMBOL = 'OWN'
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
from gui.objects_map.names import statusDesktop_mainWindow, statusDesktop_mainWindow_overlay, mainWindow_StatusWindow
|
from gui.objects_map.names import statusDesktop_mainWindow, statusDesktop_mainWindow_overlay, mainWindow_StatusWindow
|
||||||
|
from objectmaphelper import *
|
||||||
|
|
||||||
# Map for communities screens, views locators
|
# Map for communities screens, views locators
|
||||||
|
|
||||||
|
@ -115,6 +116,7 @@ arbitrum_NetworkSelectItemDelegate = {"container": statusDesktop_mainWindow_over
|
||||||
optimism_StatusRadioButton = {"checkable": True, "container": statusDesktop_mainWindow_overlay, "objectName": "networkSelectionRadioButton_Optimism", "type": "StatusRadioButton", "visible": True}
|
optimism_StatusRadioButton = {"checkable": True, "container": statusDesktop_mainWindow_overlay, "objectName": "networkSelectionRadioButton_Optimism", "type": "StatusRadioButton", "visible": True}
|
||||||
mainnet_StatusRadioButton = {"checkable": True, "container": statusDesktop_mainWindow_overlay, "objectName": "networkSelectionRadioButton_Mainnet", "type": "StatusRadioButton", "visible": True}
|
mainnet_StatusRadioButton = {"checkable": True, "container": statusDesktop_mainWindow_overlay, "objectName": "networkSelectionRadioButton_Mainnet", "type": "StatusRadioButton", "visible": True}
|
||||||
arbitrum_StatusRadioButton = {"checkable": True, "container": statusDesktop_mainWindow_overlay, "objectName": "networkSelectionRadioButton_Arbitrum", "type": "StatusRadioButton", "visible": True}
|
arbitrum_StatusRadioButton = {"checkable": True, "container": statusDesktop_mainWindow_overlay, "objectName": "networkSelectionRadioButton_Arbitrum", "type": "StatusRadioButton", "visible": True}
|
||||||
|
networkItem_StatusRadioButton = {"checkable": True, "container": statusDesktop_mainWindow_overlay, "objectName": RegularExpression("networkSelectionRadioButton*"), "type": "StatusRadioButton", "visible": True}
|
||||||
|
|
||||||
editOwnerTokenView_Mint_StatusButton = {"checkable": False, "container": mainWindow_editOwnerTokenView_EditOwnerTokenView, "objectName": "mintButton", "type": "StatusButton", "visible": True}
|
editOwnerTokenView_Mint_StatusButton = {"checkable": False, "container": mainWindow_editOwnerTokenView_EditOwnerTokenView, "objectName": "mintButton", "type": "StatusButton", "visible": True}
|
||||||
editOwnerTokenView_FeeRow = {"container": mainWindow_editOwnerTokenView_EditOwnerTokenView, "type": "FeeRow", "unnamed": 1, "visible": True}
|
editOwnerTokenView_FeeRow = {"container": mainWindow_editOwnerTokenView_EditOwnerTokenView, "type": "FeeRow", "unnamed": 1, "visible": True}
|
||||||
|
|
|
@ -103,27 +103,27 @@ class TokensOwnerTokenSettingsView(QObject):
|
||||||
|
|
||||||
@allure.step('Verify text on owner token panel')
|
@allure.step('Verify text on owner token panel')
|
||||||
def verify_text_on_owner_token_panel(self):
|
def verify_text_on_owner_token_panel(self):
|
||||||
assert str(self.get_text_labels_from_owner_token_panel[
|
assert str(self.get_text_labels_from_owner_token_panel[2].text) \
|
||||||
1].text) == MintOwnerTokensElements.OWNER_TOKEN_CHEKLIST_ELEMENT_1.value, f'Actual text is {self.get_text_labels_from_owner_token_panel[2].text}'
|
== MintOwnerTokensElements.OWNER_TOKEN_CHEKLIST_ELEMENT_1.value, f'Actual text is {self.get_text_labels_from_owner_token_panel[2].text}'
|
||||||
assert str(self.get_text_labels_from_owner_token_panel[
|
assert str(self.get_text_labels_from_owner_token_panel[3].text) \
|
||||||
2].text) == MintOwnerTokensElements.OWNER_TOKEN_CHEKLIST_ELEMENT_2.value, f'Actual text is {self.get_text_labels_from_owner_token_panel[3].text}'
|
== MintOwnerTokensElements.OWNER_TOKEN_CHEKLIST_ELEMENT_2.value, f'Actual text is {self.get_text_labels_from_owner_token_panel[3].text}'
|
||||||
assert str(self.get_text_labels_from_owner_token_panel[
|
assert str(self.get_text_labels_from_owner_token_panel[4].text) \
|
||||||
3].text) == MintOwnerTokensElements.OWNER_TOKEN_CHEKLIST_ELEMENT_3.value, f'Actual text is {self.get_text_labels_from_owner_token_panel[4].text}'
|
== MintOwnerTokensElements.OWNER_TOKEN_CHEKLIST_ELEMENT_3.value, f'Actual text is {self.get_text_labels_from_owner_token_panel[4].text}'
|
||||||
assert str(self.get_text_labels_from_owner_token_panel[
|
assert str(self.get_text_labels_from_owner_token_panel[5].text) \
|
||||||
4].text) == MintOwnerTokensElements.OWNER_TOKEN_CHEKLIST_ELEMENT_4.value, f'Actual text is {self.get_text_labels_from_owner_token_panel[5].text}'
|
== MintOwnerTokensElements.OWNER_TOKEN_CHEKLIST_ELEMENT_4.value, f'Actual text is {self.get_text_labels_from_owner_token_panel[5].text}'
|
||||||
|
|
||||||
@allure.step('Verify text on master token panel')
|
@allure.step('Verify text on master token panel')
|
||||||
def verify_text_on_master_token_panel(self):
|
def verify_text_on_master_token_panel(self):
|
||||||
assert str(self.get_text_labels_from_master_token_panel[
|
assert str(self.get_text_labels_from_master_token_panel[
|
||||||
1].text) == MintOwnerTokensElements.MASTER_TOKEN_CHEKLIST_ELEMENT_1.value, f'Actual text is {self.get_text_labels_from_master_token_panel[1].text}'
|
3].text) == MintOwnerTokensElements.MASTER_TOKEN_CHEKLIST_ELEMENT_1.value, f'Actual text is {self.get_text_labels_from_master_token_panel[3].text}'
|
||||||
assert str(self.get_text_labels_from_master_token_panel[
|
assert str(self.get_text_labels_from_master_token_panel[
|
||||||
2].text) == MintOwnerTokensElements.MASTER_TOKEN_CHEKLIST_ELEMENT_2.value, f'Actual text is {self.get_text_labels_from_master_token_panel[2].text}'
|
4].text) == MintOwnerTokensElements.MASTER_TOKEN_CHEKLIST_ELEMENT_2.value, f'Actual text is {self.get_text_labels_from_master_token_panel[4].text}'
|
||||||
assert str(self.get_text_labels_from_master_token_panel[
|
assert str(self.get_text_labels_from_master_token_panel[
|
||||||
3].text) == MintOwnerTokensElements.MASTER_TOKEN_CHEKLIST_ELEMENT_3.value, f'Actual text is {self.get_text_labels_from_master_token_panel[3].text}'
|
5].text) == MintOwnerTokensElements.MASTER_TOKEN_CHEKLIST_ELEMENT_3.value, f'Actual text is {self.get_text_labels_from_master_token_panel[5].text}'
|
||||||
assert str(self.get_text_labels_from_master_token_panel[
|
assert str(self.get_text_labels_from_master_token_panel[
|
||||||
4].text) == MintOwnerTokensElements.MASTER_TOKEN_CHEKLIST_ELEMENT_4.value, f'Actual text is {self.get_text_labels_from_master_token_panel[4].text}'
|
6].text) == MintOwnerTokensElements.MASTER_TOKEN_CHEKLIST_ELEMENT_4.value, f'Actual text is {self.get_text_labels_from_master_token_panel[6].text}'
|
||||||
assert str(self.get_text_labels_from_master_token_panel[
|
assert str(self.get_text_labels_from_master_token_panel[
|
||||||
5].text) == MintOwnerTokensElements.MASTER_TOKEN_CHEKLIST_ELEMENT_5.value, f'Actual text is {self.get_text_labels_from_master_token_panel[5].text}'
|
7].text) == MintOwnerTokensElements.MASTER_TOKEN_CHEKLIST_ELEMENT_5.value, f'Actual text is {self.get_text_labels_from_master_token_panel[5].text}'
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@allure.step('Get all text from master token panel')
|
@allure.step('Get all text from master token panel')
|
||||||
|
@ -151,6 +151,9 @@ class EditOwnerTokenView(QObject):
|
||||||
self._select_network_filter = QObject(communities_names.editOwnerTokenView_netFilter_NetworkFilter)
|
self._select_network_filter = QObject(communities_names.editOwnerTokenView_netFilter_NetworkFilter)
|
||||||
self._select_network_combobox = QObject(communities_names.editOwnerTokenView_comboBox_ComboBox)
|
self._select_network_combobox = QObject(communities_names.editOwnerTokenView_comboBox_ComboBox)
|
||||||
self._mainnet_network_item = CheckBox(communities_names.mainnet_StatusRadioButton)
|
self._mainnet_network_item = CheckBox(communities_names.mainnet_StatusRadioButton)
|
||||||
|
self.optimism_network_item = CheckBox(communities_names.optimism_StatusRadioButton)
|
||||||
|
self.arbitrum_network_item = CheckBox(communities_names.arbitrum_StatusRadioButton)
|
||||||
|
self.network_item = CheckBox(communities_names.networkItem_StatusRadioButton)
|
||||||
self._mint_button = Button(communities_names.editOwnerTokenView_Mint_StatusButton)
|
self._mint_button = Button(communities_names.editOwnerTokenView_Mint_StatusButton)
|
||||||
self._fees_text_object = TextLabel(communities_names.editOwnerTokenView_fees_StatusBaseText)
|
self._fees_text_object = TextLabel(communities_names.editOwnerTokenView_fees_StatusBaseText)
|
||||||
self._crown_icon = QObject(communities_names.editOwnerTokenView_crown_icon_StatusIcon)
|
self._crown_icon = QObject(communities_names.editOwnerTokenView_crown_icon_StatusIcon)
|
||||||
|
@ -255,20 +258,17 @@ class EditOwnerTokenView(QObject):
|
||||||
destructible_box = self.get_destructible_boxes()[index]
|
destructible_box = self.get_destructible_boxes()[index]
|
||||||
return str(destructible_box.value)
|
return str(destructible_box.value)
|
||||||
|
|
||||||
@allure.step('Select Mainnet network')
|
def select_network(self, network_name):
|
||||||
def select_mainnet_network(self, attempts: int = 2):
|
|
||||||
if not self._fees_box.is_visible:
|
if not self._fees_box.is_visible:
|
||||||
self._scroll.vertical_scroll_down(self._fees_box)
|
self._scroll.vertical_scroll_down(self._fees_box)
|
||||||
self._select_network_filter.click()
|
self._select_network_filter.click()
|
||||||
try:
|
network_options = driver.findAllObjects(self.network_item.real_name)
|
||||||
self._mainnet_network_item.wait_until_appears()
|
assert network_options, f'Network options are not displayed'
|
||||||
self._mainnet_network_item.click()
|
for item in network_options:
|
||||||
return self
|
if str(getattr(item, 'objectName', '')).endswith(network_name):
|
||||||
except AssertionError as err:
|
QObject(item).click()
|
||||||
if attempts:
|
break
|
||||||
self.select_mainnet_network(attempts - 1)
|
return self
|
||||||
else:
|
|
||||||
raise err
|
|
||||||
|
|
||||||
@allure.step('Click mint button')
|
@allure.step('Click mint button')
|
||||||
def click_mint(self):
|
def click_mint(self):
|
||||||
|
|
|
@ -102,7 +102,7 @@ class LeftPanel(QObject):
|
||||||
@allure.step('Open advanced settings')
|
@allure.step('Open advanced settings')
|
||||||
@handle_settings_opening(AdvancedSettingsView, '10-SettingsMenuItem')
|
@handle_settings_opening(AdvancedSettingsView, '10-SettingsMenuItem')
|
||||||
def open_advanced_settings(self, click_attempts: int = 2) -> 'AdvancedSettingsView':
|
def open_advanced_settings(self, click_attempts: int = 2) -> 'AdvancedSettingsView':
|
||||||
assert AdvancedSettingsView().exists, 'Advanced settings view was not opened'
|
assert AdvancedSettingsView().wait_until_appears(), 'Advanced settings view was not opened'
|
||||||
return AdvancedSettingsView()
|
return AdvancedSettingsView()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import random
|
||||||
import time
|
import time
|
||||||
|
|
||||||
import allure
|
import allure
|
||||||
|
@ -31,7 +32,6 @@ def keys_screen(main_window) -> KeysView:
|
||||||
@allure.testcase('https://ethstatus.testrail.net/index.php?/cases/view/727245', 'Mint owner token')
|
@allure.testcase('https://ethstatus.testrail.net/index.php?/cases/view/727245', 'Mint owner token')
|
||||||
@pytest.mark.case(727245)
|
@pytest.mark.case(727245)
|
||||||
@pytest.mark.transaction
|
@pytest.mark.transaction
|
||||||
@pytest.mark.skip('temp skip test to fix it using L2 networks')
|
|
||||||
def test_mint_owner_and_tokenmaster_tokens(keys_screen, main_window, user_account):
|
def test_mint_owner_and_tokenmaster_tokens(keys_screen, main_window, user_account):
|
||||||
user_account = ReturningUser(
|
user_account = ReturningUser(
|
||||||
seed_phrase=WALLET_SEED.split(),
|
seed_phrase=WALLET_SEED.split(),
|
||||||
|
@ -67,6 +67,7 @@ def test_mint_owner_and_tokenmaster_tokens(keys_screen, main_window, user_accoun
|
||||||
wallet_settings.open_networks().switch_testnet_mode_toggle().turn_on_testnet_mode_in_testnet_modal()
|
wallet_settings.open_networks().switch_testnet_mode_toggle().turn_on_testnet_mode_in_testnet_modal()
|
||||||
|
|
||||||
with step('Switch manage community on testnet option'):
|
with step('Switch manage community on testnet option'):
|
||||||
|
settings = main_window.left_panel.open_settings()
|
||||||
settings.left_panel.open_advanced_settings().switch_manage_on_community()
|
settings.left_panel.open_advanced_settings().switch_manage_on_community()
|
||||||
|
|
||||||
with step('Create simple community'):
|
with step('Create simple community'):
|
||||||
|
@ -80,54 +81,17 @@ def test_mint_owner_and_tokenmaster_tokens(keys_screen, main_window, user_accoun
|
||||||
community_setting = community_screen.left_panel.open_community_settings()
|
community_setting = community_screen.left_panel.open_community_settings()
|
||||||
tokens_screen = community_setting.left_panel.open_tokens().click_mint_owner_button()
|
tokens_screen = community_setting.left_panel.open_tokens().click_mint_owner_button()
|
||||||
|
|
||||||
with step('Verify all elements of owner token panel'):
|
|
||||||
tokens_screen.verify_text_on_owner_token_panel()
|
|
||||||
|
|
||||||
with step('Verify all elements of master token panel'):
|
|
||||||
tokens_screen.verify_text_on_master_token_panel()
|
|
||||||
|
|
||||||
with step('Click next'):
|
with step('Click next'):
|
||||||
edit_owner_token_view = tokens_screen.click_next()
|
edit_owner_token_view = tokens_screen.click_next()
|
||||||
|
|
||||||
with (step('Verify all elements of owner token section')):
|
with step('Select network'):
|
||||||
with step('Verify name'):
|
network_name = random.choice(['Arbitrum', 'Optimism']) # no mainnet because of prices
|
||||||
assert MintOwnerTokensElements.OWNER_TOKEN_NAME.value + \
|
edit_owner_token_view.select_network(network_name)
|
||||||
community_params['name'] in edit_owner_token_view.get_all_text_labels()
|
|
||||||
with step('Verify symbol'):
|
|
||||||
assert edit_owner_token_view.get_symbol_box_content(0) == (
|
|
||||||
MintOwnerTokensElements.OWNER_TOKEN_SYMBOL.value + community_params['name'][:3]).upper()
|
|
||||||
with step('Verify crown'):
|
|
||||||
assert edit_owner_token_view.get_crown_symbol
|
|
||||||
with step('Verify total and remaining fields'):
|
|
||||||
assert edit_owner_token_view.get_total_box_content(0) == '1'
|
|
||||||
assert edit_owner_token_view.get_remaining_box_content(0) == '1'
|
|
||||||
with step('Verify transferable and destructible'):
|
|
||||||
assert edit_owner_token_view.get_transferable_box_content(0) == 'Yes'
|
|
||||||
assert edit_owner_token_view.get_destructible_box_content(0) == 'No'
|
|
||||||
|
|
||||||
with step('Verify all elements of master token section'):
|
|
||||||
with step('Verify name'):
|
|
||||||
assert MintOwnerTokensElements.MASTER_TOKEN_NAME.value + \
|
|
||||||
community_params['name'] in edit_owner_token_view.get_all_text_labels()
|
|
||||||
with step('Verify symbol'):
|
|
||||||
assert edit_owner_token_view.get_symbol_box_content(1) == (
|
|
||||||
MintOwnerTokensElements.MASTER_TOKEN_SYMBOL.value + community_params[
|
|
||||||
'name'][:3]).upper()
|
|
||||||
with step('Verify coin'):
|
|
||||||
assert edit_owner_token_view.get_coin_symbol
|
|
||||||
with step('Verify total and remaining fields'):
|
|
||||||
assert edit_owner_token_view.get_total_box_content(1) == '∞'
|
|
||||||
assert edit_owner_token_view.get_remaining_box_content(1) == '∞'
|
|
||||||
with step('Verify transferable and destructible'):
|
|
||||||
assert edit_owner_token_view.get_transferable_box_content(1) == 'No'
|
|
||||||
assert edit_owner_token_view.get_destructible_box_content(1) == 'Yes'
|
|
||||||
|
|
||||||
with step('Select Mainnet network'):
|
|
||||||
edit_owner_token_view.select_mainnet_network()
|
|
||||||
|
|
||||||
with step('Verify fees title and gas fees exist'):
|
with step('Verify fees title and gas fees exist'):
|
||||||
assert driver.waitFor(lambda: edit_owner_token_view.get_fee_title == 'Mint ' + community_params[
|
assert driver.waitFor(lambda: edit_owner_token_view.get_fee_title == 'Mint ' + community_params[
|
||||||
'name'] + MintOwnerTokensElements.SIGN_TRANSACTION_MINT_TITLE.value, configs.timeouts.UI_LOAD_TIMEOUT_MSEC)
|
'name'] + MintOwnerTokensElements.SIGN_TRANSACTION_MINT_TITLE.value + network_name,
|
||||||
|
configs.timeouts.UI_LOAD_TIMEOUT_MSEC)
|
||||||
assert driver.waitFor(lambda: edit_owner_token_view.get_fee_total_value != '',
|
assert driver.waitFor(lambda: edit_owner_token_view.get_fee_total_value != '',
|
||||||
configs.timeouts.UI_LOAD_TIMEOUT_MSEC)
|
configs.timeouts.UI_LOAD_TIMEOUT_MSEC)
|
||||||
|
|
||||||
|
@ -136,16 +100,12 @@ def test_mint_owner_and_tokenmaster_tokens(keys_screen, main_window, user_accoun
|
||||||
|
|
||||||
with step('Verify fee text and sign transaction'):
|
with step('Verify fee text and sign transaction'):
|
||||||
assert start_minting.get_fee_title == 'Mint ' + community_params[
|
assert start_minting.get_fee_title == 'Mint ' + community_params[
|
||||||
'name'] + MintOwnerTokensElements.SIGN_TRANSACTION_MINT_TITLE.value
|
'name'] + MintOwnerTokensElements.SIGN_TRANSACTION_MINT_TITLE.value + network_name
|
||||||
assert start_minting.get_fee_total_value != ''
|
assert start_minting.get_fee_total_value != ''
|
||||||
start_minting.sign_transaction(user_account.password)
|
start_minting.sign_transaction(user_account.password)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
minted_tokens_view = MintedTokensView()
|
minted_tokens_view = MintedTokensView()
|
||||||
|
|
||||||
with step('Verify that status of both tokens is Minting'):
|
|
||||||
assert minted_tokens_view.get_owner_token_status == 'Minting...'
|
|
||||||
assert minted_tokens_view.get_master_token_status == 'Minting...'
|
|
||||||
|
|
||||||
with step('Verify toast messages about started minting process appears'):
|
with step('Verify toast messages about started minting process appears'):
|
||||||
toast_messages = main_window.wait_for_notification()
|
toast_messages = main_window.wait_for_notification()
|
||||||
assert driver.waitFor(lambda: (MintOwnerTokensElements.TOAST_AIRDROPPING_TOKEN_1.value + community_params[
|
assert driver.waitFor(lambda: (MintOwnerTokensElements.TOAST_AIRDROPPING_TOKEN_1.value + community_params[
|
||||||
|
@ -154,3 +114,7 @@ def test_mint_owner_and_tokenmaster_tokens(keys_screen, main_window, user_accoun
|
||||||
assert driver.waitFor(lambda: (community_params[
|
assert driver.waitFor(lambda: (community_params[
|
||||||
'name'] + MintOwnerTokensElements.TOAST_TOKENS_BEING_MINTED.value) in toast_messages,
|
'name'] + MintOwnerTokensElements.TOAST_TOKENS_BEING_MINTED.value) in toast_messages,
|
||||||
configs.timeouts.UI_LOAD_TIMEOUT_MSEC)
|
configs.timeouts.UI_LOAD_TIMEOUT_MSEC)
|
||||||
|
|
||||||
|
with step('Verify that status of both tokens'):
|
||||||
|
assert driver.waitFor(lambda: (minted_tokens_view.get_owner_token_status == '1 of 1 (you hodl)'), 15000)
|
||||||
|
assert driver.waitFor(lambda: (minted_tokens_view.get_master_token_status == '∞'), 15000)
|
||||||
|
|
Loading…
Reference in New Issue