Test Results (7 tests)
⏱️ Duration: 23.01s
❌ Error:
self = <tests.test_active_cast.TestActiveCast object at 0x7fe279e9bd00>
page = <Page url='https://test03.testingpromo.com/activecast/my-videos'>
base_url = 'https://test03.testingpromo.com'
@pytest.mark.skip_smoke
def test_as03_my_videos_action_buttons(self, page: Page, base_url: str) -> None:
"""Logged-in user navigates to My Videos, confirms at least one video exists, and hovers to reveal action buttons."""
login_page = LoginPage(page)
login_page.login_directly(base_url, general_mail(), get_password())
login_page.assert_logged_in_as(fullname)
active_cast = ActiveCastPage(page)
active_cast.navigate_to_active_cast(base_url)
active_cast.go_to_my_videos()
> active_cast.assert_has_at_least_one_video()
tests/test_active_cast.py:56:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/active_cast_page.py:224: in assert_has_at_least_one_video
self.page.locator(self.ITEM_ACTIVATE).first.wait_for(state="visible", timeout=self.T_LOAD)
/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 0x7fe279e9b040>
cb = <function Channel.send.<locals>.<lambda> at 0x7fe279155bd0>
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()
📸 Failure Screenshot:
⏱️ Duration: 40.42s
❌ Error:
self = <tests.test_active_cast.TestActiveCast object at 0x7fe279e9b640>
page = <Page url='https://test03.testingpromo.com/activecast/generate?imageId=2686907903&imageSource=shutterstock&imageTitle=...enior-businesswoman-entrepreneur-600nw-2686907903.jpg&term=happy&searchType=category&searchTerm=happy&searchRatio=all'>
base_url = 'https://test03.testingpromo.com'
@pytest.mark.skip_smoke
def test_as05_full_generation_flow(self, page: Page, base_url: str) -> None:
"""Logged-in user activates an image, configures Kling 3 Standard generation, and waits for video result."""
login_page = LoginPage(page)
login_page.login_directly(base_url, general_mail(), get_password())
login_page.assert_logged_in_as(fullname)
active_cast = ActiveCastPage(page)
active_cast.navigate_to_active_cast(base_url)
active_cast.click_create_in_nav()
active_cast.assert_grid_has_at_least_20_items()
active_cast.hover_first_item_and_click_activate()
active_cast.fill_scene_action(
"The person is indoors, wearing the same pink polo shirt. "
"Preserve their identity, hairstyle, outfit. The person is terrified and shouts."
)
active_cast.assert_speaker_chip_avatar_visible()
active_cast.fill_scene_text(
"Hi, I'm your ActiveStock Terrified Avatar. "
"I can help you create inspiring content with real footage from places all over the world."
)
active_cast.select_model("Kling 3 Standard")
duration_before_sync = active_cast.get_duration_label()
active_cast.enable_smart_sync()
active_cast.assert_duration_auto_synced_and_locked(duration_before_sync)
active_cast.click_generate_video()
> active_cast.assert_generating_in_progress()
tests/test_active_cast.py:100:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/active_cast_page.py:555: in assert_generatin
📸 Failure Screenshot:
⏱️ Duration: 22.92s
❌ Error:
self = <tests.test_active_cast.TestActiveCast object at 0x7fe279e99a80>
page = <Page url='https://test03.testingpromo.com/activecast/my-videos'>
base_url = 'https://test03.testingpromo.com'
@pytest.mark.skip_smoke
def test_as07_my_videos_duplicate_share_delete(self, page: Page, base_url: str) -> None:
"""Logged-in user opens the kebab menu on the newest completed project: shares it (copy link, open in new tab), opens Delete and cancels, then Duplicate opens the editor pre-filled.
No generation: Regenerate is never clicked (AS05 is the only generating
scenario), so no copy is created — every step runs on an existing project
and nothing is deleted.
"""
login_page = LoginPage(page)
login_page.login_directly(base_url, general_mail(), get_password())
login_page.assert_logged_in_as(fullname)
active_cast = ActiveCastPage(page)
active_cast.navigate_to_active_cast(base_url)
active_cast.go_to_my_videos()
> active_cast.assert_has_at_least_one_video()
tests/test_active_cast.py:138:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/active_cast_page.py:224: in assert_has_at_least_one_video
self.page.locator(self.ITEM_ACTIVATE).first.wait_for(state="visible", timeout=self.T_LOAD)
/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 0x7fe279e9b040>
cb = <functi
📸 Failure Screenshot: