Test Results (22 tests)
⏱️ Duration: 110.82s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fa458d09cc0>
login_page = <pages.login_page.LoginPage object at 0x7fa458ce34f0>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fa458ce3490>
base_url = 'https://promo.com', prompt_key = 'caption'
@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
non-voice-over AI post that offers CBE
→ 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()
tests/test_chat_based_editor.py:77:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:457: in ensure_ai_posts_exist
self.wait_for_posts_generated(timeout=360_000)
pages/autopilot_page.py:545: in wait_for_posts_generated
self.page.locator(self.PLANNER_AI_BADGE).first.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 se
📸 Failure Screenshot:
⏱️ Duration: 110.79s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fa458d09bd0>
login_page = <pages.login_page.LoginPage object at 0x7fa4525873d0>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fa452587610>
base_url = 'https://promo.com', prompt_key = 'linebreak'
@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
non-voice-over AI post that offers CBE
→ 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()
tests/test_chat_based_editor.py:77:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:457: in ensure_ai_posts_exist
self.wait_for_posts_generated(timeout=360_000)
pages/autopilot_page.py:545: in wait_for_posts_generated
self.page.locator(self.PLANNER_AI_BADGE).first.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
📸 Failure Screenshot:
⏱️ Duration: 26.96s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fa458d08340>
login_page = <pages.login_page.LoginPage object at 0x7fa451567d60>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fa4515675b0>
base_url = 'https://promo.com', prompt_key = 'stock_photo'
@pytest.mark.skip_smoke
@pytest.mark.parametrize("prompt_key", [
"stock_video",
"stock_photo",
"uploaded_video",
"uploaded_photo",
])
def test_cbe03_replace_a_clip(
self, login_page, autopilot_page, base_url, prompt_key
):
"""
CBE03 Replace a clip
Login as AI user → open Planner → open the first AI post from #3
onward that still offers CBE → open CBE → send clip-replacement
prompt → verify media library → select first clip → verify discard
popup → save video.
Starts scanning at post #3 rather than assuming it's free: `email_ai`
is a shared/persistent prod account, and once a post is Rated its
chat/regenerate controls disappear from the UI permanently (verified
via DOM inspection) — a hardcoded index would fail deterministically
the moment that specific post gets rated by any run.
"""
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=3)
autopilot_page.open_first_ai_post_with_cbe(start=3, skip_voice_over=True)
autopilot_page.open_cbe()
autopilot_page.send_cbe_prompt_and_wait(CBE_PROMPTS[prompt_key])
> autopilot_page.select_cbe_clip()
tests/test_chat_based_editor.py:143:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:1674: in select_cbe_clip
self.page.locator(self.AICHAT_CHAT_SECTION).get_by_text(
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:20539: in wait_for
self._sync(
/
📸 Failure Screenshot: