Test Results (5 tests)
⏱️ Duration: 16.41s
❌ Error:
self = <tests.test_active_stock.TestActiveStock object at 0x7feee3aaa0b0>
page = <Page url='https://test03.testingpromo.com/active-stock'>
base_url = 'https://test03.testingpromo.com'
def test_as01_smoke_logged_in_create_page(self, page: Page, base_url: str) -> None:
"""Logged-in user on /active-stock sees header nav, curated catalog preview with category tags, recreate-btn on hover, and lands on /generate-from/."""
login_page = LoginPage(page)
login_page.login_directly(base_url, general_mail(), get_password())
login_page.assert_logged_in_as(fullname)
active_stock = ActiveStockPage(page)
active_stock.navigate_to_active_stock(base_url)
> active_stock.assert_header_nav_items()
tests/test_active_stock.py:39:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/active_stock_page.py:103: in assert_header_nav_items
self.page.locator(selector).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/playwright/_impl/_locator.py:741: 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:69: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <playwright._impl._connection.Connection object at 0x7feee3aab6d0>
cb = <function Channel.send.<locals>.<lambda> at 0x7feee2ea0790>
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: Li
📸 Failure Screenshot:
⏱️ Duration: 15.61s
❌ Error:
self = <tests.test_active_stock.TestActiveStock object at 0x7feee3aa9d20>
page = <Page url='https://test03.testingpromo.com/active-stock'>
base_url = 'https://test03.testingpromo.com'
def test_as02_smoke_not_logged_in_showcase(self, page: Page, base_url: str) -> None:
"""Unauthenticated user sees showcase CTA, curated catalog preview with category tags, recreate-btn on hover, and lands on /generate-from/."""
active_stock = ActiveStockPage(page)
active_stock.navigate_to_active_stock(base_url)
> active_stock.assert_showcase_cta_visible()
tests/test_active_stock.py:49:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pages.active_stock_page.ActiveStockPage object at 0x7feee1489d80>
def assert_showcase_cta_visible(self) -> None:
> expect(self.page.locator(self.SHOWCASE_START_GENERATING)).to_be_visible(timeout=self.T_LOAD)
E AssertionError: Locator expected to be visible
E Actual value: None
E Error: element(s) not found
E Call log:
E - Expect "to_be_visible" with timeout 15000ms
E - waiting for locator("[data-qaid=\"showcase-start-generating\"]")
E
E Aria snapshot:
E - banner:
E - heading "Bad gateway Error code 502" [level=1]
E - text: Visit
E - link "cloudflare.com":
E - /url: https://www.cloudflare.com/5xx-error-landing?utm_source=errorcode_502&utm_campaign=test03.testingpromo.com
E - text: for more information. 2026-07-22 18:39:58 UTC
E - text: You
E - heading "Browser" [level=3]
E - text: Working
E - link:
E - /url: https://www.cloudflare.com/5xx-error-landing?utm_source=errorcode_502&utm_campaign=test03.testingpromo.com
E - text: Ashburn
E - heading "Cloudflare" [level=3]:
E - link "Cloudflare":
E - /url: https://www.cloudflare.com/5xx-error-landing?utm_source=errorcode_502&utm_campaign=test03.testingpromo.com
E
📸 Failure Screenshot:
⏱️ Duration: 37.67s
❌ Error:
self = <tests.test_active_stock.TestActiveStock object at 0x7feee3aa9a20>
page = <Page url='https://test03.testingpromo.com/active-stock'>
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_stock = ActiveStockPage(page)
> active_stock.navigate_to_active_stock(base_url)
tests/test_active_stock.py:63:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/active_stock_page.py:68: in navigate_to_active_stock
self.page.wait_for_load_state("networkidle")
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:9875: in wait_for_load_state
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_page.py:580: in wait_for_load_state
return await self._main_frame.wait_for_load_state(**locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:298: in wait_for_load_state
return await self._wait_for_load_state_impl(state, timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <Frame name= url='https://test03.testingpromo.com/active-stock'>
state = 'networkidle', timeout = None
async def _wait_for_load_state_impl(
self, state: DocumentLoadState = None, timeout: float = None
) -> None:
if not state:
state = "load"
if state not in ("load", "domcontentloaded", "networkidle", "commit"):
raise Error(
"state: expected one of (load|domcontentloaded|networkidle|commit)"
)
waiter = self._setup_navigation_waiter("wait_for_load
📸 Failure Screenshot:
⏱️ Duration: 37.59s
❌ Error:
self = <tests.test_active_stock.TestActiveStock object at 0x7feee3aa96c0>
page = <Page url='https://test03.testingpromo.com/active-stock/create'>
base_url = 'https://test03.testingpromo.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."""
login_page = LoginPage(page)
login_page.login_directly(base_url, general_mail(), get_password())
login_page.assert_logged_in_as(fullname)
active_stock = ActiveStockPage(page)
active_stock.navigate_to_create(base_url)
> active_stock.assert_grid_has_at_least_20_items()
tests/test_active_stock.py:77:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/active_stock_page.py:111: in assert_grid_has_at_least_20_items
self.page.locator(self.GRID_ITEM).nth(19).wait_for(
/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/playwright/_impl/_locator.py:741: 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:69: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <playwright._impl._connection.Connection object at 0x7feee3aab6d0>
cb = <function Channel.send.<locals>.<lambda> at 0x7feee2f2d870>
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: Li
📸 Failure Screenshot:
⏱️ Duration: 42.81s
❌ Error:
self = <tests.test_active_stock.TestActiveStock object at 0x7feee3aa9030>
page = <Page url='https://test03.testingpromo.com/active-stock/generate?imageId=1072528872&imageSource=getty&imageTitle=The+m...qpUiWJ_XLJMBk3be4snkQ4bnF_7AwcIxQC5elQhldck%3D&term=Bizarre&searchType=search&searchTerm=Bizarre&searchRatio=vertical'>
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_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")
duration_before_sync = active_stock.get_duration_label()
active_stock.enable_smart_sync()
active_stock.assert_duration_auto_synced_and_enabled(duration_before_sync)
active_stock.click_generate_video()
> active_stock.assert_generating_in_progress()
tests/test_active_stock.py:110:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
📸 Failure Screenshot: