← Back to All Reports
TESTS FAILED (5%)
Job Name
chat_based_editor_prod
Pipeline ID
Job ID
#4396978
Branch
master
Commit
N/A
Executed At
2026-09-09T00:37:59.054732
1
Passed
19
Failed
0
Skipped

Test Results (20 tests)

test_cbe01_cbe_service_chains_sanity[chromium-caption]
failed
⏱️ Duration: 45.09s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb7850> login_page = <pages.login_page.LoginPage object at 0x7fb0f6a6b7c0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0f6a68160> 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.11s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb7790> login_page = <pages.login_page.LoginPage object at 0x7fb0f4e05180> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0f4e05d20> 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]
passed
⏱️ Duration: 59.46s
test_cbe01_cbe_service_chains_sanity[chromium-remove_scene]
failed
⏱️ Duration: 35.39s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb6f80> login_page = <pages.login_page.LoginPage object at 0x7fb0f6b6fd90> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0f42e75b0> 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.82s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb6ec0> login_page = <pages.login_page.LoginPage object at 0x7fb0f448dde0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0f448cf10> 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.17s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb6e00> login_page = <pages.login_page.LoginPage object at 0x7fb0f6b4caf0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0f6b4eb30> 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: 32.57s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb6d40> login_page = <pages.login_page.LoginPage object at 0x7fb0f448abc0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0f44891e0> 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: 78.51s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb6c50> login_page = <pages.login_page.LoginPage object at 0x7fb0f4340fa0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0f4340370> 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 0x7fb0f4340370> 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: 25.29s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb6a10> login_page = <pages.login_page.LoginPage object at 0x7fb0eec9d4b0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0eec9d150> 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() 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-add_scene]
failed
⏱️ Duration: 35.41s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb6b30> login_page = <pages.login_page.LoginPage object at 0x7fb0f448c2b0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0f448ceb0> 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() 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_cbe02_cbe_should_work_in_all_ratios[chromium-wide]
failed
⏱️ Duration: 30.39s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb5a50> login_page = <pages.login_page.LoginPage object at 0x7fb0eecc49a0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0eecc6140> 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: 50.23s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb58d0> login_page = <pages.login_page.LoginPage object at 0x7fb0ee6e0640> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0ee6e3f10> 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: 35.37s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb5570> login_page = <pages.login_page.LoginPage object at 0x7fb0f4340100> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0f43424d0> 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()) 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 0x7fb0f6bb6ad0> cb = <function Channel.send.<locals>.<lambda> at 0x7fb0f
📸 Failure Screenshot:
Test failure screenshot
test_cbe03_replace_a_clip[chromium-stock_photo]
failed
⏱️ Duration: 15.48s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb53f0> login_page = <pages.login_page.LoginPage object at 0x7fb0f42d0130> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0f42d16f0> 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()) 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 0x7fb0f6bb6ad0> cb = <function Channel.send.<locals>.<lambda> at 0x7fb0f
📸 Failure Screenshot:
Test failure screenshot
test_cbe03_replace_a_clip[chromium-uploaded_video]
failed
⏱️ Duration: 32.68s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb51e0> login_page = <pages.login_page.LoginPage object at 0x7fb0f6a683a0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0f42e79d0> 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()) 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 0x7fb0f6bb6ad0> cb = <function Channel.send.<locals>.<lambda> at 0x7fb0f5fe5630> is_internal = False, title = None async def wrap_api_call( self, cb: Callable[[], Any],
📸 Failure Screenshot:
Test failure screenshot
test_cbe03_replace_a_clip[chromium-uploaded_photo]
failed
⏱️ Duration: 73.93s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb5120> login_page = <pages.login_page.LoginPage object at 0x7fb0f448ca60> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0f448dc00> 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) tests/test_chat_based_editor.py:129: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/autopilot_page.py:447: in ensure_ai_posts_exist self.page.locator(self.MY_CAL_NEXT_MONTH_ARROW).click() /usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:17876: in click self._sync( /usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:165: in click return await self._frame._click(self._selector, strict=True, **params) /usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:593: in _click await self._channel.send("click", self._timeout, locals_to_params(locals())) /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 0x7fb0f6bb6ad0> cb = <function Channel.send.<locals>.<lambda> at
📸 Failure Screenshot:
Test failure screenshot
test_cbe04_upload_via_filestack_url[chromium-video]
failed
⏱️ Duration: 37.50s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb4e50> login_page = <pages.login_page.LoginPage object at 0x7fb0eeb123b0> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0eeb13610> 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:109: in login_directly self.enter_email(email) pages/login_page.py:73: in enter_email self.page.locator(self.EMAIL_INPUT).fill(email) /usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:18242: in fill self._sync( /usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:219: in fill return await self._frame.fill(self._selector, strict=True, **params) /usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:636: in fill await self._fill(**locals_to_params(locals())) /usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:648: in _fill await self._channel.send("fill", self._timeout, locals_to_params(locals())) /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 0x7fb0f6bb6ad0>
📸 Failure Screenshot:
Test failure screenshot
test_cbe04_upload_via_filestack_url[chromium-photo]
failed
⏱️ Duration: 38.89s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb4cd0> login_page = <pages.login_page.LoginPage object at 0x7fb0f5e88f70> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0f6b4c190> 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()) 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 0x7fb0f6bb6ad0> cb = <function Channel.send.<locals>.<lambda> at 0x7fb0f42b1000> is_internal = False, title = None async def wrap_api_call( self, cb: Callable[[], Any], is_internal: b
📸 Failure Screenshot:
Test failure screenshot
test_cbe05_voice_changes_not_possible_for_non_narrated_videos[chromium]
failed
⏱️ Duration: 42.74s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb4970> login_page = <pages.login_page.LoginPage object at 0x7fb0f543cb80> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0f42e46a0> 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()) tests/test_chat_based_editor.py:169: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 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 0x7fb0f6bb6ad0> cb = <function Channel.send.<locals>.<lambda> at 0x7fb0f42cbe20> is_internal = False, title = None async def wrap_api_call( self, cb: Callable[[], Any], is_internal: bool = False, title: str = None ) -> Any: if self._api_zone.get(): return await cb() task = as
📸 Failure Screenshot:
Test failure screenshot
test_cbe06_upload_via_filestack_facebook_page[chromium]
failed
⏱️ Duration: 30.01s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7fb0f6bb5780> login_page = <pages.login_page.LoginPage object at 0x7fb0f4e58f40> autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7fb0f4e5beb0> 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:107: in login_directly self.go_to_login_page(base_url) pages/login_page.py:43: in go_to_login_page self.page.goto(f"{base_url}/login", wait_until="domcontentloaded") /usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:9875: in goto self._sync( /usr/local/lib/python3.10/dist-packages/playwright/_impl/_page.py:560: in goto return await self._main_frame.goto(**locals_to_params(locals())) /usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:156: in goto 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 0x7fb0f6bb6ad0> cb = <function Channel.send.<locals>.<lambda> at 0x7fb0f445f6d0> is_internal = False, title = None async def wrap_api_call( self, cb: Callable[[], Any], is_internal: bool = False, title: str = None )
📸 Failure Screenshot:
Test failure screenshot