Test Results (15 tests)
⏱️ Duration: 380.71s
❌ Error:
self = <tests.test_autopilot.TestAutopilot object at 0x7f9b8eaeaa70>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f9b8eadc6a0>
login_page = <pages.login_page.LoginPage object at 0x7f9b8eade110>
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()
tests/test_autopilot.py:149:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:318: in ensure_ai_posts_exist
self.wait_for_posts_generated(timeout=360_000)
pages/autopilot_page.py:338: in wait_for_posts_generated
skip_btn.wait_for(state="visible", timeout=timeout)
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:20048: in wait_for
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:741: in wait_for
await self._frame.wait_for_selector(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:372: in wait_for_selector
await self._channel.send(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_connection.py:69: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <playwright._impl._connection.Connection object at 0x7f9b8eadc820>
cb = <function Channel.send.<locals>.<lambda> at 0x7f9b8df6e5f0>
is_internal = False, title = None
async def wrap_api_call(
self, cb: Callable[[], Any], is_internal: bool = False, title: str = None
) -> Any:
if self._api_zone.get():
return await cb()
task = a
📸 Failure Screenshot:
⏱️ Duration: 17.53s
❌ Error:
self = <tests.test_autopilot.TestAutopilot object at 0x7f9b8eae9390>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f9b8c4a7d30>
login_page = <pages.login_page.LoginPage object at 0x7f9b8c4a7a60>
base_url = 'https://promo.com'
def test_a02_verify_external_share_for_ai_posts(
self, autopilot_page, login_page, base_url
):
"""
A02 Verify external share for AI posts
Feature scenario:
Given AI user is logged in
When I open Planner
Then I clean all scheduled posts for the current month
When I click on 1 AI Post
When I generate ai external share link
Then I open external link as logged user
"""
login_page.login_directly(base_url, email_ai, get_password())
autopilot_page.go_to_planner(base_url)
autopilot_page.clean_scheduled_posts()
autopilot_page.go_to_planner(base_url)
autopilot_page.open_ai_post(1)
> share_url = autopilot_page.generate_ai_external_share_link()
tests/test_autopilot.py:203:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:747: in generate_ai_external_share_link
self.page.locator(self.PLANNER_PREVIEW_COPY_LINK_SUCCESS_ICON).wait_for(
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:20048: in wait_for
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:741: in wait_for
await self._frame.wait_for_selector(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:372: in wait_for_selector
await self._channel.send(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_connection.py:69: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <playwright._impl._connection.Connection object at 0x7f9b8eadc820>
cb = <function Channel.send.<locals>.<lambda> at 0x7
📸 Failure Screenshot:
⏱️ Duration: 14.43s
❌ Error:
self = <tests.test_autopilot.TestAutopilot object at 0x7f9b8eae9060>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f9b8c41a470>
login_page = <pages.login_page.LoginPage object at 0x7f9b8c419990>
base_url = 'https://promo.com'
@pytest.mark.skip_smoke
def test_a03_verify_validation_errors_for_ai_onboarding(
self, autopilot_page, login_page, base_url
):
"""
A03 Verify validation errors for AI onboarding inputs
Feature scenario:
Given AI user is logged in
When I open Planner
And I click Generate video posts in the banner
And I click Add new brand
Then Continue button is disabled
When I continue without a website
And I click the Generate AI posts button
Then Validation errors are displayed
When I provide business name and business description
Then Validation errors are hidden
"""
login_page.login_directly(base_url, email_ai, get_password())
autopilot_page.go_to_planner(base_url)
autopilot_page.click_generate_in_banner()
> autopilot_page.click_add_new_brand()
tests/test_autopilot.py:230:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:833: in click_add_new_brand
btn.wait_for(state="visible", timeout=10_000)
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:20048: in wait_for
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:741: in wait_for
await self._frame.wait_for_selector(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:372: in wait_for_selector
await self._channel.send(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_connection.py:69: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <playwright._impl._connection
📸 Failure Screenshot:
⏱️ Duration: 13.24s
❌ Error:
self = <tests.test_autopilot.TestAutopilot object at 0x7f9b8eae9270>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f9b8c467460>
login_page = <pages.login_page.LoginPage object at 0x7f9b8c465630>
base_url = 'https://promo.com'
@pytest.mark.skip_smoke
@pytest.mark.skip_sanity
def test_a05_replace_brand_colors_in_autopilot_wizard(
self, autopilot_page, login_page, base_url
):
"""
A05 Replace brand colors in the autopilot wizard
Feature scenario:
Given AI user is logged in
When I open Planner
And I click Generate video posts in the banner
When I try to replace colors → Brand colors are being replaced
When I try to delete a color → Brand color has been deleted
"""
login_page.login_directly(base_url, email_ai, get_password())
autopilot_page.go_to_planner(base_url)
autopilot_page.click_generate_in_banner()
> autopilot_page.replace_first_brand_color()
tests/test_autopilot.py:282:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:955: in replace_first_brand_color
first_color.wait_for(state="visible", timeout=10_000)
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:20048: in wait_for
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:741: in wait_for
await self._frame.wait_for_selector(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:372: in wait_for_selector
await self._channel.send(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_connection.py:69: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <playwright._impl._connection.Connection object at 0x7f9b8eadc820>
cb = <function Channel.send.<locals>.<lambda> at 0x7f9b8c401c60>
is_internal = False, title = None
as
📸 Failure Screenshot:
⏱️ Duration: 20.97s
❌ Error:
self = <tests.test_autopilot.TestAutopilot object at 0x7f9b8eaeb6a0>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f9b8c3d0c10>
login_page = <pages.login_page.LoginPage object at 0x7f9b8c3d3e20>
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:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:688: in click_dropdown_button_open_publish
self.wait_for_video_rendering()
pages/autopilot_page.py:696: in wait_for_video_rendering
self.page.locator(self.AI_VIDEO_BEING_RENDERED).wait_for(state="visible", timeout=15_000)
/usr/local/lib/python3.10/dist
📸 Failure Screenshot: