e2e: several fixes

Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
This commit is contained in:
Churikova Tetiana 2021-02-19 14:46:29 +01:00
parent 505171cf87
commit f3c85c1e7a
No known key found for this signature in database
GPG Key ID: 0D4EA7B33B47E6D8
5 changed files with 30 additions and 15 deletions

View File

@ -84,8 +84,8 @@ class NetworkApi(object):
'Transaction with amount %s is not found in list of %s, address is %s during %ss' % 'Transaction with amount %s is not found in list of %s, address is %s during %ss' %
(amount, additional_info, address, wait_time)) (amount, additional_info, address, wait_time))
else: else:
counter += 10 counter += 30
time.sleep(10) time.sleep(30)
try: try:
if token: if token:
transactions = self.get_token_transactions(address) transactions = self.get_token_transactions(address)
@ -100,7 +100,8 @@ class NetworkApi(object):
return transaction return transaction
except TypeError as e: except TypeError as e:
self.log("Failed iterate transactions: " + str(e)) self.log("Failed iterate transactions: " + str(e))
continue pytest.fail("No valid JSON response from Etherscan: %s " % str(e))
# continue
def wait_for_confirmation_of_transaction(self, address, amount, confirmations=12, token=False): def wait_for_confirmation_of_transaction(self, address, amount, confirmations=12, token=False):
start_time = time.time() start_time = time.time()

View File

@ -137,7 +137,7 @@ class TestMessagesOneToOneChatMultiple(MultipleDeviceTestCase):
for message in messages: for message in messages:
device_1_chat.send_message(message) device_1_chat.send_message(message)
device_2_chat = device_2_home.get_chat(default_username_1).click() device_2_chat = device_2_home.get_chat(default_username_1).click()
sent_time = device_1_chat.convert_device_time_to_chat_timestamp() sent_time_variants = device_1_chat.convert_device_time_to_chat_timestamp()
for message in messages: for message in messages:
if not device_2_chat.chat_element_by_text(message).is_element_displayed(): if not device_2_chat.chat_element_by_text(message).is_element_displayed():
self.errors.append("Message with test '%s' was not received" % message) self.errors.append("Message with test '%s' was not received" % message)
@ -150,8 +150,8 @@ class TestMessagesOneToOneChatMultiple(MultipleDeviceTestCase):
for chat in device_1_chat, device_2_chat: for chat in device_1_chat, device_2_chat:
chat.verify_message_is_under_today_text(timestamp_message, self.errors) chat.verify_message_is_under_today_text(timestamp_message, self.errors)
timestamp = chat.chat_element_by_text(timestamp_message).timestamp_message.text timestamp = chat.chat_element_by_text(timestamp_message).timestamp_message.text
if timestamp != sent_time: if timestamp not in sent_time_variants:
self.errors.append("Timestamp is not shown, expected '%s', in fact '%s'" % (sent_time, timestamp)) self.errors.append("Timestamp is not shown, expected '%s', in fact '%s'" % (sent_time_variants.join(","), timestamp))
device_2_home.just_fyi("Add user to contact and verify his default username") device_2_home.just_fyi("Add user to contact and verify his default username")
device_2_chat.add_to_contacts.click() device_2_chat.add_to_contacts.click()

View File

@ -42,12 +42,12 @@ class TestPublicChatMultipleDevice(MultipleDeviceTestCase):
message = 'hello' message = 'hello'
chat_1.send_message(message) chat_1.send_message(message)
sent_time = chat_1.convert_device_time_to_chat_timestamp() sent_time_variants = chat_1.convert_device_time_to_chat_timestamp()
for chat in chat_1, chat_2: for chat in chat_1, chat_2:
chat.verify_message_is_under_today_text(message, self.errors) chat.verify_message_is_under_today_text(message, self.errors)
timestamp = chat.chat_element_by_text(message).timestamp_message.text timestamp = chat.chat_element_by_text(message).timestamp_message.text
if timestamp != sent_time: if timestamp not in sent_time_variants:
self.errors.append("Timestamp is not shown, expected '%s', in fact '%s'" % (sent_time, timestamp)) self.errors.append("Timestamp is not shown, expected '%s', in fact '%s'" % (sent_time_variants.join(','), timestamp))
if chat_2.chat_element_by_text(message).username.text != default_username_1: if chat_2.chat_element_by_text(message).username.text != default_username_1:
self.errors.append("Default username '%s' is not shown next to the received message" % default_username_1) self.errors.append("Default username '%s' is not shown next to the received message" % default_username_1)

View File

@ -181,7 +181,7 @@ class EnterQRcodeEditBox(EditBox):
def scan_qr(self, value): def scan_qr(self, value):
self.set_value(value) self.set_value(value)
base_view = BaseView(self.driver) base_view = BaseView(self.driver)
base_view.ok_button.click_until_absense_of_element(base_view.element_by_translation_id("scan-qr")) base_view.ok_button.click()
def click(self): def click(self):
self.wait_for_element().click() self.wait_for_element().click()

View File

@ -1,4 +1,4 @@
from datetime import datetime from datetime import datetime, timedelta
import dateutil.parser import dateutil.parser
import time import time
@ -11,6 +11,15 @@ from views.base_view import BaseView, ProgressBar
from views.profile_view import ProfilePictureElement from views.profile_view import ProfilePictureElement
class CommandsButton(Button):
def __init__(self, driver):
super().__init__(driver, accessibility_id="show-extensions-icon")
def click(self):
self.click_until_presence_of_element(SendCommand(self.driver))
return self.navigate()
class SendCommand(Button): class SendCommand(Button):
def __init__(self, driver): def __init__(self, driver):
super().__init__(driver, translation_id="send-transaction") super().__init__(driver, translation_id="send-transaction")
@ -74,6 +83,7 @@ class ViewProfileButton(Button):
def navigate(self): def navigate(self):
return ChatView(self.driver) return ChatView(self.driver)
class ChatOptionsButton(Button): class ChatOptionsButton(Button):
def __init__(self, driver): def __init__(self, driver):
super().__init__(driver, accessibility_id="chat-menu-button") super().__init__(driver, accessibility_id="chat-menu-button")
@ -347,7 +357,7 @@ class ChatView(BaseView):
self.cancel_reply_button = Button(self.driver, accessibility_id="cancel-message-reply") self.cancel_reply_button = Button(self.driver, accessibility_id="cancel-message-reply")
self.chat_item = Button(self.driver, accessibility_id="chat-item") self.chat_item = Button(self.driver, accessibility_id="chat-item")
self.chat_name_editbox = EditBox(self.driver, accessibility_id="chat-name-input") self.chat_name_editbox = EditBox(self.driver, accessibility_id="chat-name-input")
self.commands_button = Button(self.driver, accessibility_id="show-extensions-icon") self.commands_button = CommandsButton(self.driver)
self.send_command = SendCommand(self.driver) self.send_command = SendCommand(self.driver)
self.request_command = RequestCommand(self.driver) self.request_command = RequestCommand(self.driver)
@ -614,11 +624,15 @@ class ChatView(BaseView):
self.nickname_input_field.send_keys(nickname) self.nickname_input_field.send_keys(nickname)
self.element_by_text('Done').click() self.element_by_text('Done').click()
def convert_device_time_to_chat_timestamp(self): def convert_device_time_to_chat_timestamp(self) -> list:
sent_time_object = dateutil.parser.parse(self.driver.device_time) sent_time_object = dateutil.parser.parse(self.driver.device_time)
timestamp = datetime.strptime("%s:%s" % (sent_time_object.hour, sent_time_object.minute), '%H:%M').strftime("%I:%M %p") timestamp = datetime.strptime("%s:%s" % (sent_time_object.hour, sent_time_object.minute), '%H:%M').strftime("%I:%M %p")
timestamp = timestamp[1:] if timestamp[0] == '0' else timestamp timestamp_obj = datetime.strptime(timestamp, '%I:%M %p')
return timestamp possible_timestamps_obj = [timestamp_obj + timedelta(0,0,0,0,1), timestamp_obj, timestamp_obj - timedelta(0,0,0,0,1)]
timestamps = list(map(lambda x : x.strftime("%I:%M %p"), possible_timestamps_obj))
final_timestamps = [t[1:] if t[0] == '0' else t for t in timestamps]
return final_timestamps
def set_new_status(self, status='something is happening', image=False): def set_new_status(self, status='something is happening', image=False):
self.driver.info("**Setting new status:%s, image set is: %s**" % (status, str(image))) self.driver.info("**Setting new status:%s, image set is: %s**" % (status, str(image)))