playwright_tests/flows/messaging_system_flows/messaging_system_flow.py (46 lines of code) (raw):
from playwright.sync_api import Page
from playwright_tests.pages.messaging_system_pages.inbox_page import InboxPage
from playwright_tests.pages.messaging_system_pages.new_message import NewMessagePage
from playwright_tests.pages.messaging_system_pages.sent_messages import SentMessagePage
class MessagingSystemFlows:
def __init__(self, page: Page):
self.new_message_page = NewMessagePage(page)
self.sent_message_page = SentMessagePage(page)
self.inbox_page = InboxPage(page)
# Send message form with data flow.
def complete_send_message_form_with_data(self,
recipient_username='',
message_body='',
submit_message=True,
expected_url=None):
"""Complete the send message form with data.
Args:
recipient_username (str): The username of the recipient.
message_body (str): The body of the message.
submit_message (bool): Submit the message.
expected_url (str): The expected URL after the click event.
"""
if recipient_username:
if isinstance(recipient_username, list):
for recipient in recipient_username:
self.new_message_page.type_into_new_message_to_input_field(recipient)
self.new_message_page.click_on_a_searched_user(recipient)
else:
self.new_message_page.type_into_new_message_to_input_field(recipient_username)
self.new_message_page.click_on_a_searched_user(recipient_username)
if message_body:
self.new_message_page.fill_into_new_message_body_textarea(message_body)
if submit_message:
self.new_message_page.click_on_new_message_send_button(
expected_url=expected_url)
def delete_message_flow(self, username='',
excerpt='',
delete_message=True,
from_sent_list=False,
from_inbox_list=False,
expected_url=None
):
"""Delete a message flow.
Args:
username (str): The username of the recipient.
excerpt (str): The excerpt of the message.
delete_message (bool): Delete the message.
from_sent_list (bool): Delete the message from the sent list.
from_inbox_list (bool): Delete the message from the inbox list
expected_url (str): The expected URL after the click event.
"""
if from_sent_list:
if username:
self.sent_message_page.click_on_sent_message_delete_button_by_user(username)
elif excerpt:
self.sent_message_page.click_on_sent_message_delete_button_by_excerpt(excerpt)
if from_inbox_list:
if username:
self.inbox_page.click_on_inbox_message_delete_button_by_username(username)
elif excerpt:
self.inbox_page.click_on_inbox_message_delete_button_by_excerpt(excerpt)
if delete_message:
self.sent_message_page.click_on_delete_page_delete_button(expected_url=expected_url)