← Back to All Reports
TESTS FAILED (9%)
Job Name
chat_based_editor_prod
Pipeline ID
Job ID
#4396971
Branch
master
Commit
N/A
Executed At
2026-09-09T00:21:41.931135
2
Passed
20
Failed
0
Skipped

Test Results (22 tests)

test_cbe01_cbe_service_chains_sanity[chromium-caption]
failed
⏱️ Duration: 45.39s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e347850> login_page = <pages.login_page.LoginPage object at 0x7f772e1fb4c0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f772e1f8400> 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() tests/test_chat_based_editor.py:79: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/autopilot_page.py:1437: in open_cbe btn.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( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
📸 Failure Screenshot:
Test failure screenshot
test_cbe01_cbe_service_chains_sanity[chromium-linebreak]
failed
⏱️ Duration: 35.36s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e347760> login_page = <pages.login_page.LoginPage object at 0x7f772c6c4df0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f772c6c5990> 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() tests/test_chat_based_editor.py:79: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/autopilot_page.py:1437: in open_cbe btn.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( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
📸 Failure Screenshot:
Test failure screenshot
test_cbe01_cbe_service_chains_sanity[chromium-music]
failed
⏱️ Duration: 24.87s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e347100> login_page = <pages.login_page.LoginPage object at 0x7f772c263790> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f772c263190> base_url = 'https://promo.com', prompt_key = 'music' @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() tests/test_chat_based_editor.py:79: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/autopilot_page.py:1437: in open_cbe btn.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( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
📸 Failure Screenshot:
Test failure screenshot
test_cbe01_cbe_service_chains_sanity[chromium-outro_values]
passed
⏱️ Duration: 40.59s
test_cbe01_cbe_service_chains_sanity[chromium-remove_scene]
failed
⏱️ Duration: 35.15s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e346f80> login_page = <pages.login_page.LoginPage object at 0x7f772c41bfd0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f772c70ae00> 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() tests/test_chat_based_editor.py:79: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/autopilot_page.py:1437: in open_cbe btn.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( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
📸 Failure Screenshot:
Test failure screenshot
test_cbe01_cbe_service_chains_sanity[chromium-text_color]
failed
⏱️ Duration: 32.55s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e346ec0> login_page = <pages.login_page.LoginPage object at 0x7f77264c6da0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f77264c75e0> 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()) tests/test_chat_based_editor.py:73: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/login_page.py:116: in login_directly self.page.wait_for_function( /usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:12761: in wait_for_function self._sync( /usr/local/lib/python3.10/dist-packages/playwright/_impl/_page.py:1151: in wait_for_function return await self._main_frame.wait_for_function(**locals_to_params(locals())) /usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:940: in wait_for_function await self._channel.send("waitForFunction", self._timeout, params) /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 objec
📸 Failure Screenshot:
Test failure screenshot
test_cbe01_cbe_service_chains_sanity[chromium-text_font]
failed
⏱️ Duration: 35.00s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e346e00> login_page = <pages.login_page.LoginPage object at 0x7f772c261270> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f772c262170> 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() tests/test_chat_based_editor.py:79: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/autopilot_page.py:1437: in open_cbe btn.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( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
📸 Failure Screenshot:
Test failure screenshot
test_cbe01_cbe_service_chains_sanity[chromium-logo]
failed
⏱️ Duration: 42.52s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e346d40> login_page = <pages.login_page.LoginPage object at 0x7f7725fd5c30> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f7725fd6a10> base_url = 'https://promo.com', prompt_key = 'logo' @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()) tests/test_chat_based_editor.py:73: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/login_page.py:116: in login_directly self.page.wait_for_function( /usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:12761: in wait_for_function self._sync( /usr/local/lib/python3.10/dist-packages/playwright/_impl/_page.py:1151: in wait_for_function return await self._main_frame.wait_for_function(**locals_to_params(locals())) /usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:940: in wait_for_function await self._channel.send("waitForFunction", self._timeout, params) /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 0
📸 Failure Screenshot:
Test failure screenshot
test_cbe01_cbe_service_chains_sanity[chromium-text_position]
failed
⏱️ Duration: 45.03s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e346c80> login_page = <pages.login_page.LoginPage object at 0x7f772d6287c0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f772d628b80> 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() tests/test_chat_based_editor.py:79: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/autopilot_page.py:1437: in open_cbe btn.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( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
📸 Failure Screenshot:
Test failure screenshot
test_cbe01_cbe_service_chains_sanity[chromium-translation]
failed
⏱️ Duration: 33.19s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e346a10> login_page = <pages.login_page.LoginPage object at 0x7f7725d91090> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f7725d935b0> 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()) tests/test_chat_based_editor.py:73: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/login_page.py:116: in login_directly self.page.wait_for_function( /usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:12761: in wait_for_function self._sync( /usr/local/lib/python3.10/dist-packages/playwright/_impl/_page.py:1151: in wait_for_function return await self._main_frame.wait_for_function(**locals_to_params(locals())) /usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:940: in wait_for_function await self._channel.send("waitForFunction", self._timeout, params) /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 obje
📸 Failure Screenshot:
Test failure screenshot
test_cbe01_cbe_service_chains_sanity[chromium-add_scene]
failed
⏱️ Duration: 32.58s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e346b60> login_page = <pages.login_page.LoginPage object at 0x7f7725f9afb0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f7725f9a6b0> 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()) tests/test_chat_based_editor.py:73: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/login_page.py:116: in login_directly self.page.wait_for_function( /usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:12761: in wait_for_function self._sync( /usr/local/lib/python3.10/dist-packages/playwright/_impl/_page.py:1151: in wait_for_function return await self._main_frame.wait_for_function(**locals_to_params(locals())) /usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:940: in wait_for_function await self._channel.send("waitForFunction", self._timeout, params) /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
📸 Failure Screenshot:
Test failure screenshot
test_cbe01_cbe_service_chains_sanity[chromium-change_watermark]
passed
⏱️ Duration: 18.94s
test_cbe02_cbe_should_work_in_all_ratios[chromium-wide]
failed
⏱️ Duration: 76.19s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e345a50> login_page = <pages.login_page.LoginPage object at 0x7f772620bc40> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f7726248cd0> 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: 73.76s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e3458d0> login_page = <pages.login_page.LoginPage object at 0x7f772620ba60> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f7726209f90> 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_cbe03_replace_a_clip[chromium-stock_video]
failed
⏱️ Duration: 42.52s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e345570> login_page = <pages.login_page.LoginPage object at 0x7f7726248ee0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f7726248f40> base_url = 'https://promo.com', prompt_key = 'stock_video' @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 3rd post → open CBE → send clip-replacement prompt → verify media library → select first clip → verify discard popup → save video. """ > login_page.login_directly(base_url, email_ai, get_password()) tests/test_chat_based_editor.py:126: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/login_page.py:116: in login_directly self.page.wait_for_function( /usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:12761: in wait_for_function self._sync( /usr/local/lib/python3.10/dist-packages/playwright/_impl/_page.py:1151: in wait_for_function return await self._main_frame.wait_for_function(**locals_to_params(locals())) /usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:940: in wait_for_function await self._channel.send("waitForFunction", self._timeout, params) /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 0x7f772e346b00> cb = <function Channel.send.<locals>.<lambda> at 0x7f772d5f1000> is_internal = False, title = None async def wrap_api_call( self, cb: Callable[[], Any], is_
📸 Failure Screenshot:
Test failure screenshot
test_cbe03_replace_a_clip[chromium-stock_photo]
failed
⏱️ Duration: 32.73s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e3453f0> login_page = <pages.login_page.LoginPage object at 0x7f772c7082e0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f772c7088e0> 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 3rd post → open CBE → send clip-replacement prompt → verify media library → select first clip → verify discard popup → save video. """ > login_page.login_directly(base_url, email_ai, get_password()) tests/test_chat_based_editor.py:126: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/login_page.py:116: in login_directly self.page.wait_for_function( /usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:12761: in wait_for_function self._sync( /usr/local/lib/python3.10/dist-packages/playwright/_impl/_page.py:1151: in wait_for_function return await self._main_frame.wait_for_function(**locals_to_params(locals())) /usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:940: in wait_for_function await self._channel.send("waitForFunction", self._timeout, params) /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 0x7f772e346b00> cb = <function Channel.send.<locals>.<lambda> at 0x7f772c790b80> is_internal = False, title = None async def wrap_api_call( self, cb: Callable[[], Any], is_
📸 Failure Screenshot:
Test failure screenshot
test_cbe03_replace_a_clip[chromium-uploaded_video]
failed
⏱️ Duration: 34.86s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e3451e0> login_page = <pages.login_page.LoginPage object at 0x7f772c256470> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f772c257d00> base_url = 'https://promo.com', prompt_key = 'uploaded_video' @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 3rd post → open CBE → send clip-replacement prompt → verify media library → select first clip → 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=3) autopilot_page.open_ai_post(3) > autopilot_page.open_cbe() tests/test_chat_based_editor.py:132: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/autopilot_page.py:1437: in open_cbe btn.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.Connection object at 0x7f772e346b00> cb = <function Channel.send.<locals>.<lambda> at 0x7f
📸 Failure Screenshot:
Test failure screenshot
test_cbe03_replace_a_clip[chromium-uploaded_photo]
failed
⏱️ Duration: 35.18s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e345120> login_page = <pages.login_page.LoginPage object at 0x7f772c401210> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f772c4034f0> base_url = 'https://promo.com', prompt_key = 'uploaded_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 3rd post → open CBE → send clip-replacement prompt → verify media library → select first clip → 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=3) autopilot_page.open_ai_post(3) > autopilot_page.open_cbe() tests/test_chat_based_editor.py:132: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/autopilot_page.py:1437: in open_cbe btn.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.Connection object at 0x7f772e346b00> cb = <function Channel.send.<locals>.<lambda> at 0x7f
📸 Failure Screenshot:
Test failure screenshot
test_cbe04_upload_via_filestack_url[chromium-video]
failed
⏱️ Duration: 33.28s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e344e50> login_page = <pages.login_page.LoginPage object at 0x7f772c2606a0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f772c2616c0> 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:116: in login_directly self.page.wait_for_function( /usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:12761: in wait_for_function self._sync( /usr/local/lib/python3.10/dist-packages/playwright/_impl/_page.py:1151: in wait_for_function return await self._main_frame.wait_for_function(**locals_to_params(locals())) /usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:940: in wait_for_function await self._channel.send("waitForFunction", self._timeout, params) /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 0x7f772e346b00> cb = <function Channel.send.<locals>.<lambda> at 0x7f772d5f0280> is_internal = False, title = None async def wrap_api_call( self, cb: Callable[[], Any], is_internal: b
📸 Failure Screenshot:
Test failure screenshot
test_cbe04_upload_via_filestack_url[chromium-photo]
failed
⏱️ Duration: 45.02s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e344cd0> login_page = <pages.login_page.LoginPage object at 0x7f772c265900> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f772c265930> 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()) autopilot_page.go_to_planner(base_url) autopilot_page.ensure_ai_posts_exist(min_count=1) autopilot_page.open_ai_post(1) > autopilot_page.open_cbe() tests/test_chat_based_editor.py:156: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/autopilot_page.py:1437: in open_cbe btn.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.Connection object at 0x7f772e346b00> cb = <function Channel.send.<locals>.<lambda> at 0x7f772c39ecb0> is
📸 Failure Screenshot:
Test failure screenshot
test_cbe05_voice_changes_not_possible_for_non_narrated_videos[chromium]
failed
⏱️ Duration: 86.47s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e344970> login_page = <pages.login_page.LoginPage object at 0x7f772c418d30> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f772c419660> 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 0x7f772c419660> 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
test_cbe06_upload_via_filestack_facebook_page[chromium]
failed
⏱️ Duration: 32.54s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f772e3459f0> login_page = <pages.login_page.LoginPage object at 0x7f77264c4700> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f77264c4f40> base_url = 'https://promo.com' @pytest.mark.skip_smoke def test_cbe06_upload_via_filestack_facebook_page( self, login_page, autopilot_page, base_url ): """ CBE06 Upload via Filestack Facebook Page @skip_smoke Login as AI user → go to planner → open 1st AI post → open CBE → send 'uploaded_video' prompt → open Filestack FB Pages source → authenticate with FB test account → select first page/album/asset → upload and verify progress bar. """ > login_page.login_directly(base_url, email_ai, get_password()) tests/test_chat_based_editor.py:191: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/login_page.py:116: in login_directly self.page.wait_for_function( /usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:12761: in wait_for_function self._sync( /usr/local/lib/python3.10/dist-packages/playwright/_impl/_page.py:1151: in wait_for_function return await self._main_frame.wait_for_function(**locals_to_params(locals())) /usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:940: in wait_for_function await self._channel.send("waitForFunction", self._timeout, params) /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 0x7f772e346b00> cb = <function Channel.send.<locals>.<lambda> at 0x7f772c23df30> is_internal = False, title = None async def wrap_api_call( self, cb: Callable[[], Any], is_internal: bool = False, title: str = None ) -> Any: if sel
📸 Failure Screenshot:
Test failure screenshot