Test Results (9 tests)
⏱️ Duration: 40.17s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f253fe67850>
login_page = <pages.login_page.LoginPage object at 0x7f253fd1aef0>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f253fd1bf40>
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 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 0x7f253fd1bf40>
timeout = 30000
def verify_cbe_save_enabled(self, timeout: int = 30_000):
"""
Verifie
📸 Failure Screenshot:
⏱️ Duration: 39.05s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f253fe67760>
login_page = <pages.login_page.LoginPage object at 0x7f253da1dc00>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f253da1e7a0>
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 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 0x7f253da1e7a0>
timeout = 30000
def verify_cbe_save_enabled(self, timeout: int = 30_000):
"""
Verif
📸 Failure Screenshot:
⏱️ Duration: 38.45s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f253fe66f80>
login_page = <pages.login_page.LoginPage object at 0x7f253e9cc6d0>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f253e9cc1c0>
base_url = 'https://promo.com', prompt_key = 'remove_scene'
@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 0x7f253e9cc1c0>
timeout = 30000
def verify_cbe_save_enabled(self, timeout: int = 30_000):
"""
Ve
📸 Failure Screenshot:
⏱️ Duration: 39.29s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f253fe66ec0>
login_page = <pages.login_page.LoginPage object at 0x7f253e9ca500>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f253e9cb9a0>
base_url = 'https://promo.com', prompt_key = 'text_color'
@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 0x7f253e9cb9a0>
timeout = 30000
def verify_cbe_save_enabled(self, timeout: int = 30_000):
"""
Veri
📸 Failure Screenshot:
⏱️ Duration: 69.45s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f253fe66e00>
login_page = <pages.login_page.LoginPage object at 0x7f253e81f940>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f253e81ed40>
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 0x7f253e81ed40>
timeout = 60000
def verify_cbe_save_enabled(self, timeout: int = 30_000):
"""
Verif
📸 Failure Screenshot:
⏱️ Duration: 70.20s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f253fe66c80>
login_page = <pages.login_page.LoginPage object at 0x7f253fe19cc0>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f253fe18490>
base_url = 'https://promo.com', prompt_key = 'text_position'
@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 0x7f253fe18490>
timeout = 60000
def verify_cbe_save_enabled(self, timeout: int = 30_000):
"""
V
📸 Failure Screenshot:
⏱️ Duration: 38.84s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f253fe66a40>
login_page = <pages.login_page.LoginPage object at 0x7f253c61b2b0>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f253c618730>
base_url = 'https://promo.com', prompt_key = 'translation'
@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 0x7f253c618730>
timeout = 30000
def verify_cbe_save_enabled(self, timeout: int = 30_000):
"""
Ver
📸 Failure Screenshot:
⏱️ Duration: 39.73s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f253fe66b60>
login_page = <pages.login_page.LoginPage object at 0x7f253e9cc2e0>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f253e9cd6c0>
base_url = 'https://promo.com', prompt_key = 'add_scene'
@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 0x7f253e9cd6c0>
timeout = 30000
def verify_cbe_save_enabled(self, timeout: int = 30_000):
"""
Verif
📸 Failure Screenshot:
⏱️ Duration: 67.67s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f253fe64970>
login_page = <pages.login_page.LoginPage object at 0x7f253c53cc40>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f253c53dd50>
base_url = 'https://promo.com'
def test_cbe05_voice_changes_not_possible_for_non_narrated_videos(
self, login_page, autopilot_page, base_url
):
"""
CBE05 Voice changes not possible for non-narrated videos
Login as AI user → go to planner → open 1st AI post → open CBE
→ send 'change_voice' prompt → verify save button is disabled
→ verify voice apply button is not shown in CBE panel.
"""
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["change_voice"])
tests/test_chat_based_editor.py:176:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pages.autopilot_page.AutopilotPage object at 0x7f253c53dd50>
prompt = 'Please add a voice to this video'
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 panel can already contain
icons/messages from earlier turns. Waiting on a fixed index (old:
`AICHAT_CHAT_ICON_PINK.nth(1)`) or a bare visibility check would then be
satisfied by that stale history and return immediately, without ever
waiting for the reply to *this* prompt. Instead, capture counts before
s
📸 Failure Screenshot: