← Back to All Reports
TESTS FAILED (40%)
Job Name
ai_generation_prod
Pipeline ID
Job ID
#4311031
Branch
master
Commit
N/A
Executed At
2026-07-15T02:35:15.993949
6
Passed
9
Failed
0
Skipped

Test Results (15 tests)

test_ai01_free_user_can_generate_30_ai_posts_and_cant_render_a_video
failed
⏱️ Duration: 705.08s
❌ Error:
browser = <selenium.webdriver.remote.webdriver.WebDriver (session="b260e2f0be36eceed824a9beffefc239")> def go_to_my_account(browser): """ Goes to My Account page with screenshot upload on failure """ time.sleep(4) # Close any modals/popups that might be blocking the menu skip_offer_modal(browser) time.sleep(1) # Try to find and hover over username menu with retry logic and screenshots max_attempts = 5 for attempt in range(max_attempts): if is_visible(browser, USERNAME_MENU, 10): do_hover(browser, USERNAME_MENU, 5) break else: print(f"USERNAME_MENU not visible in go_to_my_account, attempt {attempt + 1}/{max_attempts}") # Take screenshot and upload to R2 timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') job_id = os.getenv('CI_JOB_ID', 'local') filename = f"my_account_username_missing_{job_id}_{timestamp}_attempt{attempt}.png" screenshot_url = upload_screenshot_to_r2(browser, filename) print(f"Screenshot uploaded: {screenshot_url}") if attempt < max_attempts - 1: browser.refresh() time.sleep(4) skip_offer_modal(browser) else: # Final screenshot before failing timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') job_id = os.getenv('CI_JOB_ID', 'local') filename = f"my_account_username_final_fail_{job_id}_{timestamp}.png" screenshot_url = upload_screenshot_to_r2(browser, filename) print(f"Final failure screenshot: {screenshot_url}") # If username menu never appeared, user might not be logged in raise AssertionError("USERNAME_MENU never became visible. User may not be logged in.") # Click My Account
📸 Failure Screenshot:
Test failure screenshot
test_ai07_free_user_tries_to_generate_the_second_batch_with_another_brand
passed
⏱️ Duration: 799.10s
test_ai08_free_user_generates_a_video_for_the_amazon_product_with_a_store
failed
⏱️ Duration: 173.03s
❌ Error:
fixturefunc = <function ai_provide_website_or_topic at 0x7fd2e1eec430> request = <FixtureRequest for <Function test_ai08_free_user_generates_a_video_for_the_amazon_product_with_a_store>> kwargs = {'browser': <selenium.webdriver.remote.webdriver.WebDriver (session="22780534a22f8f2bf58cc8583587b19b")>, 'input1': 'standard_amazon_product'} def call_fixture_func( fixturefunc: "_FixtureFunc[FixtureValue]", request: FixtureRequest, kwargs ) -> FixtureValue: if is_generator(fixturefunc): fixturefunc = cast( Callable[..., Generator[FixtureValue, None, None]], fixturefunc ) generator = fixturefunc(**kwargs) try: fixture_result = next(generator) except StopIteration: raise ValueError(f"{request.fixturename} did not yield a value") from None finalizer = functools.partial(_teardown_yield_fixture, fixturefunc, generator) request.addfinalizer(finalizer) else: fixturefunc = cast(Callable[..., FixtureValue], fixturefunc) > fixture_result = fixturefunc(**kwargs) venv/lib/python3.10/site-packages/_pytest/fixtures.py:917: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_autopilot_page.py:205: in ai_provide_website_or_topic bs_fail_with_traceback(browser, ai_provide_website_or_topic, e) helpers/common_helpers.py:815: in bs_fail_with_traceback raise exception tests/test_autopilot_page.py:203: in ai_provide_website_or_topic provide_web_or_topic_autopilot(browser, inputs[input1]) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ browser = <selenium.webdriver.remote.webdriver.WebDriver (session="22780534a22f8f2bf58cc8583587b19b")> ai_input = 'amazon.com/dp/B0BRH2RNHX' def provide_web_or_topic_autopilot(browser, ai_input: str): """ ai_input (str): chosen website or topic from testdata.py act
📸 Failure Screenshot:
Test failure screenshot
test_ai09p_free_user_generates_a_video_based_on_amazon_listing_that_contains_videos[amazon_product_with_videos]
failed
⏱️ Duration: 250.30s
❌ Error:
fixturefunc = <function ai_onboarding_timer at 0x7fd2e1eedf30> request = <FixtureRequest for <Function test_ai09p_free_user_generates_a_video_based_on_amazon_listing_that_contains_videos[amazon_product_with_videos]>> kwargs = {'browser': <selenium.webdriver.remote.webdriver.WebDriver (session="9fefa106cbd940c44693d590e274dd2f")>} def call_fixture_func( fixturefunc: "_FixtureFunc[FixtureValue]", request: FixtureRequest, kwargs ) -> FixtureValue: if is_generator(fixturefunc): fixturefunc = cast( Callable[..., Generator[FixtureValue, None, None]], fixturefunc ) generator = fixturefunc(**kwargs) try: fixture_result = next(generator) except StopIteration: raise ValueError(f"{request.fixturename} did not yield a value") from None finalizer = functools.partial(_teardown_yield_fixture, fixturefunc, generator) request.addfinalizer(finalizer) else: fixturefunc = cast(Callable[..., FixtureValue], fixturefunc) > fixture_result = fixturefunc(**kwargs) venv/lib/python3.10/site-packages/_pytest/fixtures.py:917: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_autopilot_page.py:335: in ai_onboarding_timer bs_fail_with_traceback(browser, ai_onboarding_timer, e) helpers/common_helpers.py:815: in bs_fail_with_traceback raise exception tests/test_autopilot_page.py:333: in ai_onboarding_timer video_generation_screen_displayed(browser) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ browser = <selenium.webdriver.remote.webdriver.WebDriver (session="9fefa106cbd940c44693d590e274dd2f")> def video_generation_screen_displayed(browser): """ Verify that the video generation screen is displayed """ > assert is_visible(browser, AI_GENERATOR_TIMER, 10) E AssertionError pages/autopilo
📸 Failure Screenshot:
Test failure screenshot
test_ai09p_free_user_generates_a_video_based_on_amazon_listing_that_contains_videos[amazon_product_with_videos2]
failed
⏱️ Duration: 182.86s
❌ Error:
fixturefunc = <function ai_onboarding_timer at 0x7fd2e1eedf30> request = <FixtureRequest for <Function test_ai09p_free_user_generates_a_video_based_on_amazon_listing_that_contains_videos[amazon_product_with_videos2]>> kwargs = {'browser': <selenium.webdriver.remote.webdriver.WebDriver (session="3af29f29468380244eec9b3f6d4a98f6")>} def call_fixture_func( fixturefunc: "_FixtureFunc[FixtureValue]", request: FixtureRequest, kwargs ) -> FixtureValue: if is_generator(fixturefunc): fixturefunc = cast( Callable[..., Generator[FixtureValue, None, None]], fixturefunc ) generator = fixturefunc(**kwargs) try: fixture_result = next(generator) except StopIteration: raise ValueError(f"{request.fixturename} did not yield a value") from None finalizer = functools.partial(_teardown_yield_fixture, fixturefunc, generator) request.addfinalizer(finalizer) else: fixturefunc = cast(Callable[..., FixtureValue], fixturefunc) > fixture_result = fixturefunc(**kwargs) venv/lib/python3.10/site-packages/_pytest/fixtures.py:917: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_autopilot_page.py:335: in ai_onboarding_timer bs_fail_with_traceback(browser, ai_onboarding_timer, e) helpers/common_helpers.py:815: in bs_fail_with_traceback raise exception tests/test_autopilot_page.py:333: in ai_onboarding_timer video_generation_screen_displayed(browser) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ browser = <selenium.webdriver.remote.webdriver.WebDriver (session="3af29f29468380244eec9b3f6d4a98f6")> def video_generation_screen_displayed(browser): """ Verify that the video generation screen is displayed """ > assert is_visible(browser, AI_GENERATOR_TIMER, 10) E AssertionError pages/autopil
📸 Failure Screenshot:
Test failure screenshot
test_ai11_new_user_tries_ai_generation_from_homepage__release
failed
⏱️ Duration: 406.61s
❌ Error:
fixturefunc = <function skip_the_educational_video at 0x7fd2e1eee4d0> request = <FixtureRequest for <Function test_ai11_new_user_tries_ai_generation_from_homepage__release>> kwargs = {'browser': <selenium.webdriver.remote.webdriver.WebDriver (session="ccae8b8a0a558d5e61c5a18d5081a6ae")>} def call_fixture_func( fixturefunc: "_FixtureFunc[FixtureValue]", request: FixtureRequest, kwargs ) -> FixtureValue: if is_generator(fixturefunc): fixturefunc = cast( Callable[..., Generator[FixtureValue, None, None]], fixturefunc ) generator = fixturefunc(**kwargs) try: fixture_result = next(generator) except StopIteration: raise ValueError(f"{request.fixturename} did not yield a value") from None finalizer = functools.partial(_teardown_yield_fixture, fixturefunc, generator) request.addfinalizer(finalizer) else: fixturefunc = cast(Callable[..., FixtureValue], fixturefunc) > fixture_result = fixturefunc(**kwargs) venv/lib/python3.10/site-packages/_pytest/fixtures.py:917: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_autopilot_page.py:365: in skip_the_educational_video bs_fail_with_traceback(browser, skip_the_educational_video, e) helpers/common_helpers.py:815: in bs_fail_with_traceback raise exception tests/test_autopilot_page.py:362: in skip_the_educational_video do_click(browser, AI_GENERATOR_SKIP_VIDEO) helpers/common_helpers.py:200: in do_click WebDriverWait(browser, sec, poll_frequency=0.4).until( venv/lib/python3.10/site-packages/selenium/webdriver/support/wait.py:92: in until value = method(self._driver) venv/lib/python3.10/site-packages/selenium/webdriver/support/expected_conditions.py:357: in _predicate if element and element.is_enabled(): venv/lib/python3.10/site-packages/selenium/webdriver/remote/webelement.py:191: in
📸 Failure Screenshot:
Test failure screenshot
test_ai13_new_user_tries_ai_generation_from_homepage_with_custom_dates__release
failed
⏱️ Duration: 160.82s
❌ Error:
fixturefunc = <function ai_fetched_assets at 0x7fd2e1eecaf0> request = <FixtureRequest for <Function test_ai13_new_user_tries_ai_generation_from_homepage_with_custom_dates__release>> kwargs = {'browser': <selenium.webdriver.remote.webdriver.WebDriver (session="a901c4b607a167bea17196d79c25fe11")>} def call_fixture_func( fixturefunc: "_FixtureFunc[FixtureValue]", request: FixtureRequest, kwargs ) -> FixtureValue: if is_generator(fixturefunc): fixturefunc = cast( Callable[..., Generator[FixtureValue, None, None]], fixturefunc ) generator = fixturefunc(**kwargs) try: fixture_result = next(generator) except StopIteration: raise ValueError(f"{request.fixturename} did not yield a value") from None finalizer = functools.partial(_teardown_yield_fixture, fixturefunc, generator) request.addfinalizer(finalizer) else: fixturefunc = cast(Callable[..., FixtureValue], fixturefunc) > fixture_result = fixturefunc(**kwargs) venv/lib/python3.10/site-packages/_pytest/fixtures.py:917: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_autopilot_page.py:238: in ai_fetched_assets bs_fail_with_traceback(browser, ai_fetched_assets, e) helpers/common_helpers.py:815: in bs_fail_with_traceback raise exception tests/test_autopilot_page.py:236: in ai_fetched_assets assets_fetched_ai(browser, PROMO_BUSINESS_NAME_FETCHED, 3) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ browser = <selenium.webdriver.remote.webdriver.WebDriver (session="a901c4b607a167bea17196d79c25fe11")> business_name = ('xpath', '//input[contains(@value, "Promo.com")]') number_colors = 3 def assets_fetched_ai(browser, business_name: tuple, number_colors: int): """ First verifies that used is redirected to the 2nd step of the onboarding
📸 Failure Screenshot:
Test failure screenshot
test_ai14_new_user_tries_ai_generation_from_homepage_for_amazon_product
failed
⏱️ Duration: 345.47s
❌ Error:
fixturefunc = <function ai_onboarding_timer at 0x7fd2e1eedf30> request = <FixtureRequest for <Function test_ai14_new_user_tries_ai_generation_from_homepage_for_amazon_product>> kwargs = {'browser': <selenium.webdriver.remote.webdriver.WebDriver (session="f9ad6934ec0a6bfb68e0aeffe38d6e6c")>} def call_fixture_func( fixturefunc: "_FixtureFunc[FixtureValue]", request: FixtureRequest, kwargs ) -> FixtureValue: if is_generator(fixturefunc): fixturefunc = cast( Callable[..., Generator[FixtureValue, None, None]], fixturefunc ) generator = fixturefunc(**kwargs) try: fixture_result = next(generator) except StopIteration: raise ValueError(f"{request.fixturename} did not yield a value") from None finalizer = functools.partial(_teardown_yield_fixture, fixturefunc, generator) request.addfinalizer(finalizer) else: fixturefunc = cast(Callable[..., FixtureValue], fixturefunc) > fixture_result = fixturefunc(**kwargs) venv/lib/python3.10/site-packages/_pytest/fixtures.py:917: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_autopilot_page.py:335: in ai_onboarding_timer bs_fail_with_traceback(browser, ai_onboarding_timer, e) helpers/common_helpers.py:815: in bs_fail_with_traceback raise exception tests/test_autopilot_page.py:333: in ai_onboarding_timer video_generation_screen_displayed(browser) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ browser = <selenium.webdriver.remote.webdriver.WebDriver (session="f9ad6934ec0a6bfb68e0aeffe38d6e6c")> def video_generation_screen_displayed(browser): """ Verify that the video generation screen is displayed """ > assert is_visible(browser, AI_GENERATOR_TIMER, 10) E AssertionError pages/autopilot_page.py:525: AssertionError
📸 Failure Screenshot:
Test failure screenshot
test_ai03_autopilot_e2e_path_with_ai_topics_post_in_planner_verification
passed
⏱️ Duration: 570.28s
test_ai05_video_generation_started_from_chatgpt_store
passed
⏱️ Duration: 495.87s
test_ai06_free_user_can_generate_single_ai_post_from_planner
passed
⏱️ Duration: 810.88s
test_ai09p_free_user_generates_a_video_based_on_amazon_listing_that_contains_videos[amazon_product_with_videos3]
failed
⏱️ Duration: 227.91s
❌ Error:
fixturefunc = <function ai_onboarding_timer at 0x7f44d3197f40> request = <FixtureRequest for <Function test_ai09p_free_user_generates_a_video_based_on_amazon_listing_that_contains_videos[amazon_product_with_videos3]>> kwargs = {'browser': <selenium.webdriver.remote.webdriver.WebDriver (session="e960ec657d82cb1324c84f362cb3d429")>} def call_fixture_func( fixturefunc: "_FixtureFunc[FixtureValue]", request: FixtureRequest, kwargs ) -> FixtureValue: if is_generator(fixturefunc): fixturefunc = cast( Callable[..., Generator[FixtureValue, None, None]], fixturefunc ) generator = fixturefunc(**kwargs) try: fixture_result = next(generator) except StopIteration: raise ValueError(f"{request.fixturename} did not yield a value") from None finalizer = functools.partial(_teardown_yield_fixture, fixturefunc, generator) request.addfinalizer(finalizer) else: fixturefunc = cast(Callable[..., FixtureValue], fixturefunc) > fixture_result = fixturefunc(**kwargs) venv/lib/python3.10/site-packages/_pytest/fixtures.py:917: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_autopilot_page.py:335: in ai_onboarding_timer bs_fail_with_traceback(browser, ai_onboarding_timer, e) helpers/common_helpers.py:815: in bs_fail_with_traceback raise exception tests/test_autopilot_page.py:333: in ai_onboarding_timer video_generation_screen_displayed(browser) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ browser = <selenium.webdriver.remote.webdriver.WebDriver (session="e960ec657d82cb1324c84f362cb3d429")> def video_generation_screen_displayed(browser): """ Verify that the video generation screen is displayed """ > assert is_visible(browser, AI_GENERATOR_TIMER, 10) E AssertionError pages/autopil
📸 Failure Screenshot:
Test failure screenshot
test_ai10_free_user_can_generate_the_second_batch_with_topic
passed
⏱️ Duration: 773.40s
test_ai12_new_user_tries_ai_generation_from_homepage_without_a_website
passed
⏱️ Duration: 737.16s
test_ai15_new_user_tries_ai_generation_from_homepage_for_topic
failed
⏱️ Duration: 465.02s
❌ Error:
fixturefunc = <function video_generation_elements_displayed at 0x7f44d342c160> request = <FixtureRequest for <Function test_ai15_new_user_tries_ai_generation_from_homepage_for_topic>> kwargs = {'browser': <selenium.webdriver.remote.webdriver.WebDriver (session="9c7002a3d8adb89bec2fd3541d37377c")>} def call_fixture_func( fixturefunc: "_FixtureFunc[FixtureValue]", request: FixtureRequest, kwargs ) -> FixtureValue: if is_generator(fixturefunc): fixturefunc = cast( Callable[..., Generator[FixtureValue, None, None]], fixturefunc ) generator = fixturefunc(**kwargs) try: fixture_result = next(generator) except StopIteration: raise ValueError(f"{request.fixturename} did not yield a value") from None finalizer = functools.partial(_teardown_yield_fixture, fixturefunc, generator) request.addfinalizer(finalizer) else: fixturefunc = cast(Callable[..., FixtureValue], fixturefunc) > fixture_result = fixturefunc(**kwargs) venv/lib/python3.10/site-packages/_pytest/fixtures.py:917: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_autopilot_page.py:345: in video_generation_elements_displayed bs_fail_with_traceback(browser, video_generation_elements_displayed, e) helpers/common_helpers.py:815: in bs_fail_with_traceback raise exception _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ browser = <selenium.webdriver.remote.webdriver.WebDriver (session="9c7002a3d8adb89bec2fd3541d37377c")> @then('I verify that all video generation elements are displayed') def video_generation_elements_displayed(browser): video_related_buttons = [AI_GENERATOR_YOUTUBE_PLAYER, AI_GENERATOR_CHECKBOX, AI_GENERATOR_SKIP_VIDEO] try: for element in video_related_buttons: > assert is_visible(browser
📸 Failure Screenshot:
Test failure screenshot