Test Results (22 tests)
⏱️ Duration: 19.12s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7ff0abfd3c40>
login_page = <pages.login_page.LoginPage object at 0x7ff0ab3db430>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7ff0abfdad40>
base_url = 'https://promo.com', prompt_key = 'outro_values'
@pytest.mark.skip_smoke
@pytest.mark.parametrize("prompt_key", [
"caption",
"linebreak",
"music",
"outro_values",
"remove_scene",
"text_color",
"text_font",
"logo",
"text_position",
"translation",
"add_scene",
"change_watermark",
])
def test_cbe01_cbe_service_chains_sanity(
self, login_page, autopilot_page, base_url, prompt_key
):
"""
CBE01 CBE service chains sanity
Login as AI user → open Planner → ensure AI posts exist → open 1st post
→ open CBE → send prompt → verify AI response → verify save enabled
→ 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()
autopilot_page.open_ai_post(1)
autopilot_page.open_cbe()
> autopilot_page.send_cbe_prompt_and_wait(CBE_PROMPTS[prompt_key])
tests/test_chat_based_editor.py:80:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pages.autopilot_page.AutopilotPage object at 0x7ff0abfdad40>
prompt = 'Please create better food related hashtags in outro'
def send_cbe_prompt_and_wait(self, prompt: str):
"""
Types a prompt in the chat input, sends it, then waits for the AI response
and asserts no error message is shown.
The CBE chat history persists on the post across sessions, so on a post
that has already been through prior prompts (e.g. test_cbe01's chained
parametrized runs against the same post) the pan
📸 Failure Screenshot:
⏱️ Duration: 78.30s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7ff0abfd3a00>
login_page = <pages.login_page.LoginPage object at 0x7ff0aad06da0>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7ff0aad06560>
base_url = 'https://promo.com', prompt_key = 'text_font'
@pytest.mark.skip_smoke
@pytest.mark.parametrize("prompt_key", [
"caption",
"linebreak",
"music",
"outro_values",
"remove_scene",
"text_color",
"text_font",
"logo",
"text_position",
"translation",
"add_scene",
"change_watermark",
])
def test_cbe01_cbe_service_chains_sanity(
self, login_page, autopilot_page, base_url, prompt_key
):
"""
CBE01 CBE service chains sanity
Login as AI user → open Planner → ensure AI posts exist → open 1st post
→ open CBE → send prompt → verify AI response → verify save enabled
→ 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()
autopilot_page.open_ai_post(1)
autopilot_page.open_cbe()
autopilot_page.send_cbe_prompt_and_wait(CBE_PROMPTS[prompt_key])
# text_font / text_position are known to be slower on the backend to
# apply and enable Save (documented flaky report in migration_log.md);
# give them extra headroom instead of the default 30s.
save_timeout = 60_000 if prompt_key in ("text_font", "text_position") else 30_000
> autopilot_page.verify_cbe_save_enabled(timeout=save_timeout)
tests/test_chat_based_editor.py:85:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pages.autopilot_page.AutopilotPage object at 0x7ff0aad06560>
timeout = 60000
def verify_cbe_save_enabled(self, timeout: int = 30_000):
"""
Verif
📸 Failure Screenshot:
⏱️ Duration: 35.16s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7ff0abfd37c0>
login_page = <pages.login_page.LoginPage object at 0x7ff0aa9fc670>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7ff0aa9fda80>
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:1376: 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: 38.12s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7ff0abfd0dc0>
login_page = <pages.login_page.LoginPage object at 0x7ff0aa8800d0>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7ff0aa880730>
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:1376: 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: