Test Results (6 tests)
⏱️ Duration: 27.44s
❌ Error:
self = <tests.test_active_stock.TestActiveStock object at 0x7f0f50b4e320>
page = <Page url='https://promo.com/active-stock/my-videos'>
base_url = 'https://promo.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."""
LoginPage(page).login_directly(base_url, general_mail(), get_password())
active_stock = ActiveStockPage(page)
active_stock.navigate_to_active_stock(base_url)
active_stock.go_to_my_videos()
active_stock.assert_has_at_least_one_video()
> active_stock.hover_first_video_and_assert_action_buttons()
tests/test_active_stock.py:62:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/active_stock_page.py:160: in hover_first_video_and_assert_action_buttons
first_video.hover()
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:19160: in hover
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:477: in hover
return await self._frame.hover(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:768: in hover
await self._channel.send("hover", self._timeout, locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_connection.py:69: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <playwright._impl._connection.Connection object at 0x7f0f50b4f010>
cb = <function Channel.send.<locals>.<lambda> at 0x7f0f4bd1b400>
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 = asyncio.current_task(self._loop)
st: List[in
📸 Failure Screenshot:
⏱️ Duration: 21.23s
❌ Error:
self = <tests.test_active_stock.TestActiveStock object at 0x7f0f50b4cfa0>
page = <Page url='https://promo.com/active-stock/generate?imageId=1072528872&imageSource=getty&imageTitle=The+man+screaming+w...qpUiWJ_XLJMBk3be4snkQ4bnF_7AwcIxQC5elQhldck%3D&term=Bizarre&searchType=search&searchTerm=Bizarre&searchRatio=vertical'>
base_url = 'https://promo.com'
@pytest.mark.skip_smoke
def test_as04_generate_page_controls_after_image_activation(self, page: Page, base_url: str) -> None:
"""Logged-in user activates an image from the create grid and verifies all generator controls are visible."""
LoginPage(page).login_directly(base_url, general_mail(), get_password())
active_stock = ActiveStockPage(page)
active_stock.navigate_to_create(base_url)
active_stock.assert_grid_has_at_least_20_items()
active_stock.hover_second_item_and_assert_activate_btn()
> active_stock.activate_image_and_assert_generate_page()
tests/test_active_stock.py:73:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pages.active_stock_page.ActiveStockPage object at 0x7f0f4a4922c0>
def activate_image_and_assert_generate_page(self) -> None:
"""Clicks activate-image, then asserts URL, all generator controls visible, and crop/link controls absent."""
with self.page.expect_navigation(timeout=self.T_NETWORK):
self.page.locator(self.ACTIVATE_IMAGE_BTN).first.click(force=True)
self.page.wait_for_load_state("networkidle", timeout=self.T_NETWORK)
assert "/active-stock/generate?imageId=" in self.page.url, (
f"Expected URL to contain '/active-stock/generate?imageId=', got: {self.page.url}"
)
visible_selectors = [
self.CHANGE_IMAGE_BTN,
self.GENERATE_VIDEO_BTN,
self.ACTION_TEMPLATE_SELECTOR,
self.CAMERA_MOVEMENT_SELECTOR,
self.SCENE_ACTION_INPUT,
self.SCENE_TEXT_INP
📸 Failure Screenshot:
⏱️ Duration: 20.68s
❌ Error:
self = <tests.test_active_stock.TestActiveStock object at 0x7f0f50b4cc40>
page = <Page url='https://promo.com/active-stock/generate?imageId=1072528872&imageSource=getty&imageTitle=The+man+screaming+w...qpUiWJ_XLJMBk3be4snkQ4bnF_7AwcIxQC5elQhldck%3D&term=Bizarre&searchType=search&searchTerm=Bizarre&searchRatio=vertical'>
base_url = 'https://promo.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."""
LoginPage(page).login_directly(base_url, general_mail(), get_password())
active_stock = ActiveStockPage(page)
active_stock.navigate_to_active_stock(base_url)
active_stock.click_create_in_nav()
active_stock.assert_grid_has_at_least_20_items()
active_stock.hover_first_item_and_click_activate()
active_stock.select_second_action_template()
active_stock.fill_scene_action(
"The man is indoors, wearing the same pink polo shirt. "
"Preserve his identity, hairstyle, outfit. The man is terrifies and shouts."
)
active_stock.assert_speaker_chip_avatar_visible()
active_stock.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_stock.select_model("Kling 3 Standard")
active_stock.enable_smart_sync()
> active_stock.assert_duration_slider_disabled()
tests/test_active_stock.py:98:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/active_stock_page.py:288: in assert_duration_slider_disabled
slider.wait_for(state="visible", timeout=self.T_ACTION)
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:20298: in wait_for
self._sync(
/usr/local/lib/python3.10/dist-packages/
📸 Failure Screenshot: