Test Results (15 tests)
⏱️ Duration: 318.60s
❌ Error:
self = <tests.test_autopilot.TestAutopilot object at 0x7fdb6bf1e020>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fdb6c01ab30>
login_page = <pages.login_page.LoginPage object at 0x7fdb6c019ff0>
base_url = 'https://promo.com'
@pytest.mark.skip_testenv
def test_a01p_verify_actions_on_ai_posts_in_planner(
self, autopilot_page, login_page, base_url
):
"""
A01P Verify actions on the AI posts in planner (prod only)
Same scenario as A01T — runs on prod, skipped on testenv.
"""
login_page.login_directly(base_url, email_ai, get_password())
autopilot_page.go_to_planner(base_url)
autopilot_page.ensure_ai_posts_exist()
# i-icon tooltip
autopilot_page.hover_i_icon(1)
autopilot_page.assert_i_icon_tooltip_visible(1)
autopilot_page.assert_ai_badge_tooltip_visible()
# Post 1: full preview checks + regeneration
autopilot_page.open_ai_post(1)
autopilot_page.assert_ai_post_tag_visible()
autopilot_page.assert_aspect_ratios_visible()
autopilot_page.assert_preview_dropdown_buttons_visible()
autopilot_page.assert_preview_cta_buttons_visible()
autopilot_page.assert_preview_cta_tooltips()
autopilot_page.assert_video_loaded()
autopilot_page.assert_ai_specific_buttons_visible()
> autopilot_page.check_single_post_regeneration()
tests/test_autopilot.py:165:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:795: in check_single_post_regeneration
self.wait_for_regeneration_complete(timeout)
pages/autopilot_page.py:785: in wait_for_regeneration_complete
loader.wait_for(state="hidden", timeout=timeout)
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:20539: in wait_for
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:748: in wait_for
await self._frame.w
📸 Failure Screenshot:
⏱️ Duration: 35.40s
❌ Error:
self = <tests.test_autopilot.TestAutopilot object at 0x7fdb6bf1ec20>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fdb68841f30>
sign_up_page = <pages.sign_up_page.SignUpPage object at 0x7fdb68843670>
my_account_page = <pages.my_account_page.MyAccountPage object at 0x7fdb688427a0>
base_url = 'https://promo.com'
@pytest.mark.skip_smoke
def test_a07_free_user_has_no_brand_options_in_wizard(
self, autopilot_page, sign_up_page, my_account_page, base_url
):
"""
A07 Free user does not see my brand or logo options in the autopilot wizard
Feature scenario:
When I create a new account
And I continue without a website (autopilot wizard landing)
Then I verify if there is no option to add brand
When I open the settings page
Then I delete my account
"""
random_email = f"promo.auto.a07.{uuid.uuid4().hex[:8]}@promo.com"
sign_up_page.create_account(
base_url=base_url,
email=random_email,
full_name=fullname,
password=random_password,
)
autopilot_page.go_to_autopilot_wizard(base_url)
autopilot_page.click_continue_without_website()
autopilot_page.assert_brands_dropdown_not_visible()
my_account_page.go_to_my_account_direct(base_url)
> my_account_page.delete_account(random_password)
tests/test_autopilot.py:363:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/my_account_page.py:97: in delete_account
self.page.locator(self.HOMEPAGE_AI_INPUT).wait_for(state="visible", timeout=self.T_UPLOAD)
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:20539: in wait_for
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:748: in wait_for
await self._frame.wait_for_selector(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:394: in wait_for_selector
📸 Failure Screenshot:
⏱️ Duration: 36.50s
❌ Error:
self = <tests.test_autopilot.TestAutopilot object at 0x7fdb6bf1fc10>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fdb69a41d50>
login_page = <pages.login_page.LoginPage object at 0x7fdb69a42c80>
base_url = 'https://promo.com', button_key = 'export', option = 'cbe'
@pytest.mark.skip_smoke
@pytest.mark.parametrize("button_key,option", [
("export", "cbe"),
("upload_to", "voice"),
("embed", "regenerate"),
])
def test_a09_redirect_to_publish_page_via_preview_buttons(
self, autopilot_page, login_page, base_url, button_key, option
):
"""
A09 Verify user is redirected to the publish page when using planner preview buttons
Feature scenario (Scenario Outline):
Given AI user is logged in
When I open Planner
Then I generate AI posts if needed
When I click on 4 AI Post
When I click the "<button>" button in the dropdown
Then Video is being rendered
Then New tab with Publish Page is opened
When I open Planner via link
When I click on 4 rendered AI Post
Then I check that "<option>" is not available
Then I remove the rendered post
Examples: export/cbe | upload_to/voice | embed/regenerate
"""
login_page.login_directly(base_url, email_ai, get_password())
autopilot_page.go_to_planner(base_url)
autopilot_page.ensure_ai_posts_exist()
autopilot_page.open_ai_post(4)
> autopilot_page.click_dropdown_button_open_publish(button_key)
tests/test_autopilot.py:415:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:1005: in click_dropdown_button_open_publish
self.wait_for_video_rendering()
pages/autopilot_page.py:1013: in wait_for_video_rendering
self.page.locator(self.AI_VIDEO_BEING_RENDERED).wait_for(state="visible", timeout=self.T_NETWORK)
/usr/local/lib/python3.10/
📸 Failure Screenshot:
⏱️ Duration: 36.91s
❌ Error:
self = <tests.test_autopilot.TestAutopilot object at 0x7fdb6bf1fdc0>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fdb6853e0e0>
login_page = <pages.login_page.LoginPage object at 0x7fdb6853f100>
base_url = 'https://promo.com', button_key = 'upload_to', option = 'voice'
@pytest.mark.skip_smoke
@pytest.mark.parametrize("button_key,option", [
("export", "cbe"),
("upload_to", "voice"),
("embed", "regenerate"),
])
def test_a09_redirect_to_publish_page_via_preview_buttons(
self, autopilot_page, login_page, base_url, button_key, option
):
"""
A09 Verify user is redirected to the publish page when using planner preview buttons
Feature scenario (Scenario Outline):
Given AI user is logged in
When I open Planner
Then I generate AI posts if needed
When I click on 4 AI Post
When I click the "<button>" button in the dropdown
Then Video is being rendered
Then New tab with Publish Page is opened
When I open Planner via link
When I click on 4 rendered AI Post
Then I check that "<option>" is not available
Then I remove the rendered post
Examples: export/cbe | upload_to/voice | embed/regenerate
"""
login_page.login_directly(base_url, email_ai, get_password())
autopilot_page.go_to_planner(base_url)
autopilot_page.ensure_ai_posts_exist()
autopilot_page.open_ai_post(4)
> autopilot_page.click_dropdown_button_open_publish(button_key)
tests/test_autopilot.py:415:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:1005: in click_dropdown_button_open_publish
self.wait_for_video_rendering()
pages/autopilot_page.py:1013: in wait_for_video_rendering
self.page.locator(self.AI_VIDEO_BEING_RENDERED).wait_for(state="visible", timeout=self.T_NETWORK)
/usr/local/lib/python
📸 Failure Screenshot:
⏱️ Duration: 36.72s
❌ Error:
self = <tests.test_autopilot.TestAutopilot object at 0x7fdb6bf1feb0>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fdb683c7910>
login_page = <pages.login_page.LoginPage object at 0x7fdb683c5fc0>
base_url = 'https://promo.com', button_key = 'embed', option = 'regenerate'
@pytest.mark.skip_smoke
@pytest.mark.parametrize("button_key,option", [
("export", "cbe"),
("upload_to", "voice"),
("embed", "regenerate"),
])
def test_a09_redirect_to_publish_page_via_preview_buttons(
self, autopilot_page, login_page, base_url, button_key, option
):
"""
A09 Verify user is redirected to the publish page when using planner preview buttons
Feature scenario (Scenario Outline):
Given AI user is logged in
When I open Planner
Then I generate AI posts if needed
When I click on 4 AI Post
When I click the "<button>" button in the dropdown
Then Video is being rendered
Then New tab with Publish Page is opened
When I open Planner via link
When I click on 4 rendered AI Post
Then I check that "<option>" is not available
Then I remove the rendered post
Examples: export/cbe | upload_to/voice | embed/regenerate
"""
login_page.login_directly(base_url, email_ai, get_password())
autopilot_page.go_to_planner(base_url)
autopilot_page.ensure_ai_posts_exist()
autopilot_page.open_ai_post(4)
> autopilot_page.click_dropdown_button_open_publish(button_key)
tests/test_autopilot.py:415:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:1005: in click_dropdown_button_open_publish
self.wait_for_video_rendering()
pages/autopilot_page.py:1013: in wait_for_video_rendering
self.page.locator(self.AI_VIDEO_BEING_RENDERED).wait_for(state="visible", timeout=self.T_NETWORK)
/usr/local/lib/pytho
📸 Failure Screenshot:
⏱️ Duration: 14.68s
❌ Error:
self = <tests.test_autopilot.TestAutopilot object at 0x7fdb6bf1e3e0>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fdb5b8c5db0>
login_page = <pages.login_page.LoginPage object at 0x7fdb5b8c5870>
base_url = 'https://promo.com'
@pytest.mark.skip_smoke
def test_a10_create_new_with_topic(
self, autopilot_page, login_page, base_url
):
"""
A10 User provides a topic in the Create new input
Feature scenario:
Given AI user is logged in
When User clicks the Create new button in header
Then Create new dropdown is displayed
When I provide topic in the create new input
And I click the Generate button in the create new header
Then I review the topic
"""
login_page.login_directly(base_url, email_ai, get_password())
autopilot_page.go_to_planner(base_url)
autopilot_page.click_create_new_button()
> autopilot_page.assert_create_new_dropdown_visible()
tests/test_autopilot.py:439:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:1400: in assert_create_new_dropdown_visible
self.page.locator(self.CREATE_NEW_VIDEO_INPUT).wait_for(
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:20539: in wait_for
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:748: in wait_for
await self._frame.wait_for_selector(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:394: in wait_for_selector
await self._channel.send(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_connection.py:76: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <playwright._impl._connection.Connection object at 0x7fdb6c018d30>
cb = <function Channel.send.<locals>.<lambda> at 0x7fdb6868fe20>
is_internal = False, title = None
📸 Failure Screenshot:
⏱️ Duration: 15.15s
❌ Error:
self = <tests.test_autopilot.TestAutopilot object at 0x7fdb6bf1c700>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fdb684b4af0>
login_page = <pages.login_page.LoginPage object at 0x7fdb684b4df0>
base_url = 'https://promo.com'
@pytest.mark.skip_smoke
def test_a11_create_new_with_website(
self, autopilot_page, login_page, base_url
):
"""
A11 User provides a website in the Create new input
Feature scenario:
Given AI user is logged in
When User clicks the Create new button in header
Then Create new dropdown is displayed
When I provide website in the create new input
And I click the Generate button in the create new header
Then Business assets are fetched from the website
"""
login_page.login_directly(base_url, email_ai, get_password())
autopilot_page.go_to_planner(base_url)
autopilot_page.click_create_new_button()
> autopilot_page.assert_create_new_dropdown_visible()
tests/test_autopilot.py:462:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:1400: in assert_create_new_dropdown_visible
self.page.locator(self.CREATE_NEW_VIDEO_INPUT).wait_for(
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:20539: in wait_for
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:748: in wait_for
await self._frame.wait_for_selector(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:394: in wait_for_selector
await self._channel.send(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_connection.py:76: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <playwright._impl._connection.Connection object at 0x7fdb6c018d30>
cb = <function Channel.send.<locals>.<lambda> at 0x7fdb68670280>
is
📸 Failure Screenshot:
⏱️ Duration: 14.77s
❌ Error:
self = <tests.test_autopilot.TestAutopilot object at 0x7fdb6c01bd60>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fdb5b8c49a0>
login_page = <pages.login_page.LoginPage object at 0x7fdb5b8c7280>
base_url = 'https://promo.com', product_url = 'amazon.com/dp/B0BRH2RNHX'
@pytest.mark.skip_smoke
@pytest.mark.parametrize("product_url", [
standard_amazon_product,
standard_airbnb_local,
])
def test_a12_create_new_with_amazon_product(
self, autopilot_page, login_page, base_url, product_url
):
"""
A12 User provides Amazon product or Airbnb listing in the Create new input
Feature scenario:
Given AI user is logged in
When User clicks the Create new button in header
Then Create new dropdown is displayed
When I provide Amazon product in the create new input
And I click the Generate button in the create new header
Then I verify posts amount is equal to 1
Parameters: standard_amazon_product | standard_airbnb_local
"""
span_index = {
standard_amazon_product: 2,
standard_airbnb_local: 3,
}[product_url]
login_page.login_directly(base_url, email_ai, get_password())
autopilot_page.go_to_planner(base_url)
autopilot_page.click_create_new_button()
> autopilot_page.assert_create_new_dropdown_visible()
tests/test_autopilot.py:495:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:1400: in assert_create_new_dropdown_visible
self.page.locator(self.CREATE_NEW_VIDEO_INPUT).wait_for(
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:20539: in wait_for
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:748: in wait_for
await self._frame.wait_for_selector(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:394: in wait_fo
📸 Failure Screenshot:
⏱️ Duration: 15.56s
❌ Error:
self = <tests.test_autopilot.TestAutopilot object at 0x7fdb6c019390>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fdb6871ca00>
login_page = <pages.login_page.LoginPage object at 0x7fdb6871f100>
base_url = 'https://promo.com'
product_url = 'https://www.airbnb.com/rooms/1402655494806905338'
@pytest.mark.skip_smoke
@pytest.mark.parametrize("product_url", [
standard_amazon_product,
standard_airbnb_local,
])
def test_a12_create_new_with_amazon_product(
self, autopilot_page, login_page, base_url, product_url
):
"""
A12 User provides Amazon product or Airbnb listing in the Create new input
Feature scenario:
Given AI user is logged in
When User clicks the Create new button in header
Then Create new dropdown is displayed
When I provide Amazon product in the create new input
And I click the Generate button in the create new header
Then I verify posts amount is equal to 1
Parameters: standard_amazon_product | standard_airbnb_local
"""
span_index = {
standard_amazon_product: 2,
standard_airbnb_local: 3,
}[product_url]
login_page.login_directly(base_url, email_ai, get_password())
autopilot_page.go_to_planner(base_url)
autopilot_page.click_create_new_button()
> autopilot_page.assert_create_new_dropdown_visible()
tests/test_autopilot.py:495:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:1400: in assert_create_new_dropdown_visible
self.page.locator(self.CREATE_NEW_VIDEO_INPUT).wait_for(
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:20539: in wait_for
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:748: in wait_for
await self._frame.wait_for_selector(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_f
📸 Failure Screenshot: