⏱️ Duration: 59.31s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f092ba2cdf0>
login_page = <pages.login_page.LoginPage object at 0x7f092ad1f3a0>
autopilot_page = <pages.autopilot_page.AutopilotPage object at 0x7f092ad1c2e0>
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])
> autopilot_page.verify_cbe_save_enabled()
tests/test_chat_based_editor.py:98:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pages.autopilot_page.AutopilotPage object at 0x7f092ad1c2e0>
def verify_cbe_save_enabled(self):
"""
Verifies the Save button is enabled (backend has applied the AI change).
Mirrors: verify_cbe_save_enabled(browser) retry loop
"""
from playwright.sync_api import expect
> expect(self.page.locator(self.AICHAT_SAVE_BUTTON)).to_be_enabled(timeout=30_000)
E AssertionError: Locator expected to be enabled
E Actual value: disabled
E
📸 Failure Screenshot:
⏱️ Duration: 457.92s
❌ Error:
self = <tests.test_chat_based_editor.TestChatBasedEditor object at 0x7f092ba301c0>
page = <Page url='https://promo.com/planner/promoai?term=https%3A%2F%2Fwww.amazon.com%2Fdp%2FB00JXQ06X8&flow=video-settings&g...on_source=Homepage&ai_video_type=ECOMMERCE_ITEM&ai_session_id=ebec28b7-f3af-4e4a-83da-2d88f86b32d0&auto_generate=true'>
base_url = 'https://promo.com'
def test_cbe07_change_intro_amazon_product_video(
self, page, base_url
):
"""
CBE07 Change the intro for an Amazon product video.
Homepage TID=0 → Amazon URL → video settings → new account → skip survey
→ wait for generation (skip tutorial when it appears) → open first post
→ verify CBE + voice settings present → change intro via 'amazon_intro'
→ verify save enabled → open advanced settings → edit script → save
→ confirm regeneration → wait for regeneration → verify save enabled → save.
"""
main_page = MainPage(page)
signup_page = SignUpPage(page)
autopilot_page = AutopilotPage(page)
main_page.go_to_homepage_with_tid(base_url, "0")
main_page.provide_autopilot_input(amazon_product)
main_page.click_video_settings_next()
main_page.assert_ai_flow_login_loader()
signup_page.fill_signup_form_in_ai_flow(fullname, random_password)
signup_page.skip_survey()
# Wait up to 5 minutes for the skip-tutorial button to appear.
# Generation screen shows this button once backend processing starts;
# the window is generous because the first run after signup can be slow.
from playwright.sync_api import TimeoutError as PlaywrightTimeoutError
try:
autopilot_page.page.locator(autopilot_page.AI_GENERATOR_SKIP_VIDEO).wait_for(
state="visible", timeout=300_000
)
autopilot_page.page.locator(autopilot_page.AI_GENERATOR_SKIP_VIDEO).click()
autopilot_page.page.wait_for_url(
📸 Failure Screenshot: