Test Results (22 tests)
⏱️ Duration: 29.80s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fa16328da50>
login_page = <pages.login_page.LoginPage object at 0x7fa162409960>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fa1623a9c00>
base_url = 'https://promo.com', ratio = 'wide'
@pytest.mark.parametrize("ratio", ["wide", "vertical"])
def test_cbe02_cbe_should_work_in_all_ratios(
self, login_page, autopilot_page, base_url, ratio
):
"""
CBE02 CBE should work in all ratios
Login as AI user → open Planner → open 2nd post → change ratio
→ open CBE → send caption prompt → verify discard popup → save video.
"""
login_page.login_directly(base_url, email_ai, get_password())
autopilot_page.go_to_planner(base_url)
autopilot_page.ensure_ai_posts_exist(min_count=2)
autopilot_page.open_ai_post(2)
autopilot_page.change_video_ratio(ratio)
autopilot_page.open_cbe()
autopilot_page.send_cbe_prompt_and_wait(CBE_PROMPTS["caption"])
> autopilot_page.verify_cbe_discard_popup()
tests/test_chat_based_editor.py:107:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:1505: in verify_cbe_discard_popup
self.page.locator(self.AICHAT_DISCARD_MODAL_BUTTON).wait_for(state="visible", timeout=self.T_ACTION)
/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.Connecti
📸 Failure Screenshot:
⏱️ Duration: 29.33s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fa16328d8d0>
login_page = <pages.login_page.LoginPage object at 0x7fa1615bd810>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fa1615be4a0>
base_url = 'https://promo.com', ratio = 'vertical'
@pytest.mark.parametrize("ratio", ["wide", "vertical"])
def test_cbe02_cbe_should_work_in_all_ratios(
self, login_page, autopilot_page, base_url, ratio
):
"""
CBE02 CBE should work in all ratios
Login as AI user → open Planner → open 2nd post → change ratio
→ open CBE → send caption prompt → verify discard popup → save video.
"""
login_page.login_directly(base_url, email_ai, get_password())
autopilot_page.go_to_planner(base_url)
autopilot_page.ensure_ai_posts_exist(min_count=2)
autopilot_page.open_ai_post(2)
autopilot_page.change_video_ratio(ratio)
autopilot_page.open_cbe()
autopilot_page.send_cbe_prompt_and_wait(CBE_PROMPTS["caption"])
> autopilot_page.verify_cbe_discard_popup()
tests/test_chat_based_editor.py:107:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:1505: in verify_cbe_discard_popup
self.page.locator(self.AICHAT_DISCARD_MODAL_BUTTON).wait_for(state="visible", timeout=self.T_ACTION)
/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.Conn
📸 Failure Screenshot:
⏱️ Duration: 30.01s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fa16328ce50>
login_page = <pages.login_page.LoginPage object at 0x7fa160174970>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fa1601745b0>
base_url = 'https://promo.com', asset = 'video'
@pytest.mark.parametrize("asset", ["video", "photo"])
def test_cbe04_upload_via_filestack_url(
self, login_page, autopilot_page, base_url, asset
):
"""
CBE04 Upload via Filestack URL
Login as AI user → open Planner → open 4th post → open CBE
→ send uploaded_video prompt → import asset via Filestack URL
→ verify progress bar + upload complete + tab redirect.
"""
url = filestack_upload_video_url if asset == "video" else filestack_upload_photo_url
> login_page.login_directly(base_url, email_ai, get_password())
tests/test_chat_based_editor.py:150:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/login_page.py:107: in login_directly
self.go_to_login_page(base_url)
pages/login_page.py:43: in go_to_login_page
self.page.goto(f"{base_url}/login", wait_until="domcontentloaded")
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:9875: in goto
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_page.py:560: in goto
return await self._main_frame.goto(**locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:156: in goto
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 0x7fa16328ead0>
cb = <function Channel.send.<locals>.<lambda> at 0x7fa16154cf70>
is_internal = False, title = None
async def wrap_api_call(
self, cb: Callable[[
⏱️ Duration: 30.01s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fa16328ccd0>
login_page = <pages.login_page.LoginPage object at 0x7fa15369f2e0>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fa15369d4b0>
base_url = 'https://promo.com', asset = 'photo'
@pytest.mark.parametrize("asset", ["video", "photo"])
def test_cbe04_upload_via_filestack_url(
self, login_page, autopilot_page, base_url, asset
):
"""
CBE04 Upload via Filestack URL
Login as AI user → open Planner → open 4th post → open CBE
→ send uploaded_video prompt → import asset via Filestack URL
→ verify progress bar + upload complete + tab redirect.
"""
url = filestack_upload_video_url if asset == "video" else filestack_upload_photo_url
> login_page.login_directly(base_url, email_ai, get_password())
tests/test_chat_based_editor.py:150:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/login_page.py:107: in login_directly
self.go_to_login_page(base_url)
pages/login_page.py:43: in go_to_login_page
self.page.goto(f"{base_url}/login", wait_until="domcontentloaded")
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:9875: in goto
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_page.py:560: in goto
return await self._main_frame.goto(**locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:156: in goto
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 0x7fa16328ead0>
cb = <function Channel.send.<locals>.<lambda> at 0x7fa1616a81f0>
is_internal = False, title = None
async def wrap_api_call(
self, cb: Callable[[
📸 Failure Screenshot: