← Back to All Reports
TESTS FAILED (0%)
Job Name
chat_based_editor_prod
Pipeline ID
Job ID
#4407250
Branch
master
Commit
N/A
Executed At
2026-09-16T00:37:16.884870
0
Passed
11
Failed
0
Skipped

Test Results (11 tests)

test_cbe01_cbe_service_chains_sanity[chromium-caption]
failed
⏱️ Duration: 39.19s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fa63470f820> login_page = <pages.login_page.LoginPage object at 0x7fa6345bf190> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fa6345bc5e0> 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 0x7fa6345bc5e0> timeout = 30000 def verify_cbe_save_enabled(self, timeout: int = 30_000): """ Verifie
📸 Failure Screenshot:
Test failure screenshot
test_cbe01_cbe_service_chains_sanity[chromium-linebreak]
failed
⏱️ Duration: 39.99s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fa63470f730> login_page = <pages.login_page.LoginPage object at 0x7fa631d8e020> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fa631d8ebc0> 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 0x7fa631d8ebc0> timeout = 30000 def verify_cbe_save_enabled(self, timeout: int = 30_000): """ Verif
📸 Failure Screenshot:
Test failure screenshot
test_cbe01_cbe_service_chains_sanity[chromium-remove_scene]
failed
⏱️ Duration: 38.40s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fa63470ef50> login_page = <pages.login_page.LoginPage object at 0x7fa633437c70> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fa633434cd0> 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 0x7fa633434cd0> timeout = 30000 def verify_cbe_save_enabled(self, timeout: int = 30_000): """ Ve
📸 Failure Screenshot:
Test failure screenshot
test_cbe01_cbe_service_chains_sanity[chromium-text_color]
failed
⏱️ Duration: 39.34s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fa63470ee90> login_page = <pages.login_page.LoginPage object at 0x7fa633445090> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fa633446890> 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 0x7fa633446890> timeout = 30000 def verify_cbe_save_enabled(self, timeout: int = 30_000): """ Veri
📸 Failure Screenshot:
Test failure screenshot
test_cbe01_cbe_service_chains_sanity[chromium-text_font]
failed
⏱️ Duration: 69.11s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fa63470edd0> login_page = <pages.login_page.LoginPage object at 0x7fa633260bb0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fa633262050> 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 0x7fa633262050> timeout = 60000 def verify_cbe_save_enabled(self, timeout: int = 30_000): """ Verif
📸 Failure Screenshot:
Test failure screenshot
test_cbe01_cbe_service_chains_sanity[chromium-text_position]
failed
⏱️ Duration: 70.69s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fa63470ec50> login_page = <pages.login_page.LoginPage object at 0x7fa631dd6770> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fa631dd4b50> 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 0x7fa631dd4b50> timeout = 60000 def verify_cbe_save_enabled(self, timeout: int = 30_000): """ V
📸 Failure Screenshot:
Test failure screenshot
test_cbe01_cbe_service_chains_sanity[chromium-translation]
failed
⏱️ Duration: 38.64s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fa63470ea10> login_page = <pages.login_page.LoginPage object at 0x7fa6331dfbb0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fa6331dc0d0> 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 0x7fa6331dc0d0> timeout = 30000 def verify_cbe_save_enabled(self, timeout: int = 30_000): """ Ver
📸 Failure Screenshot:
Test failure screenshot
test_cbe01_cbe_service_chains_sanity[chromium-add_scene]
failed
⏱️ Duration: 38.95s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fa63470eb30> login_page = <pages.login_page.LoginPage object at 0x7fa632227820> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fa632227040> 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 0x7fa632227040> timeout = 30000 def verify_cbe_save_enabled(self, timeout: int = 30_000): """ Verif
📸 Failure Screenshot:
Test failure screenshot
test_cbe02_cbe_should_work_in_all_ratios[chromium-wide]
failed
⏱️ Duration: 21.49s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fa63470da20> login_page = <pages.login_page.LoginPage object at 0x7fa6331e5c90> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fa6331e5f90> 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:
Test failure screenshot
test_cbe02_cbe_should_work_in_all_ratios[chromium-vertical]
failed
⏱️ Duration: 23.12s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fa63470d8a0> login_page = <pages.login_page.LoginPage object at 0x7fa633187040> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fa6331847c0> 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:
Test failure screenshot
test_cbe05_voice_changes_not_possible_for_non_narrated_videos[chromium]
failed
⏱️ Duration: 66.82s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fa63470c940> login_page = <pages.login_page.LoginPage object at 0x7fa630cd7610> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fa630cd66b0> 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 0x7fa630cd66b0> 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:
Test failure screenshot