Test Results (16 tests)
⏱️ Duration: 33.21s
❌ Error:
flow = Flow(plan_cta='button[data-qaid*="select-plan-ANNUAL_D1"]', monthly=False, first_offer=Offer(title='Having commitment ...1), second_offer=Offer(title='A special offer just for you!', card='.ncf-plan-card--half_price_annual_basic', cards=1))
cancellation_page = <pages.cancellation_page.CancellationPage object at 0x7f1ee1c743d0>
billing_page = <pages.billing_page.BillingPage object at 0x7f1ee08f4af0>
@pytest.mark.parametrize("flow", FLOWS, indirect=True)
def test_accept_first_offer(flow, cancellation_page, billing_page):
"""'Can't find videos' → skip experts screen → accept 1st offer → subscription pending update."""
cancellation_page.start_cancellation(C.REASON_CANT_FIND_VIDEOS)
cancellation_page.assert_offer(flow.first_offer)
> cancellation_page.accept_offer()
tests/cancellation/test_cancellation.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/cancellation_page.py:90: in accept_offer
self.popup.get_by_role("button", name="Ok").click(timeout=self.T_NETWORK)
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:17876: in click
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:165: in click
return await self._frame._click(self._selector, strict=True, **params)
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:593: in _click
await self._channel.send("click", self._timeout, locals_to_params(locals()))
/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 0x7f1ee1c98b80>
cb = <function Channel.send.<locals>.<lambda> at 0x7f1ee033ba30>
is_internal = False, title = None
async def wrap_api_call(
self, cb: Callable[[], Any], is_internal: bool = False, title: str = None
📸 Failure Screenshot:
⏱️ Duration: 34.06s
❌ Error:
flow = Flow(plan_cta='button[data-qaid*="select-plan-ANNUAL_D1"]', monthly=False, first_offer=Offer(title='Having commitment ...1), second_offer=Offer(title='A special offer just for you!', card='.ncf-plan-card--half_price_annual_basic', cards=1))
cancellation_page = <pages.cancellation_page.CancellationPage object at 0x7f1ee0c43970>
billing_page = <pages.billing_page.BillingPage object at 0x7f1ed9f65900>
@pytest.mark.parametrize("flow", FLOWS, indirect=True)
def test_accept_second_offer(flow, cancellation_page, billing_page):
"""'Too expensive' → decline 1st offer → accept 2nd offer → subscription pending update."""
_reach_second_offer(cancellation_page, flow)
> cancellation_page.accept_offer()
tests/cancellation/test_cancellation.py:80:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/cancellation_page.py:90: in accept_offer
self.popup.get_by_role("button", name="Ok").click(timeout=self.T_NETWORK)
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:17876: in click
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:165: in click
return await self._frame._click(self._selector, strict=True, **params)
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:593: in _click
await self._channel.send("click", self._timeout, locals_to_params(locals()))
/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 0x7f1ee1c98b80>
cb = <function Channel.send.<locals>.<lambda> at 0x7f1ed9a69f30>
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: 33.71s
❌ Error:
flow = Flow(plan_cta='button[data-qaid*="select-plan-ANNUAL_D2"]', monthly=False, first_offer=Offer(title='Having commitment ...es?', card=None, cards=1), second_offer=Offer(title='There’s a better way', card='.ncf-plan-card--downgrade', cards=1))
cancellation_page = <pages.cancellation_page.CancellationPage object at 0x7f1ee1c768c0>
billing_page = <pages.billing_page.BillingPage object at 0x7f1ed9e78fa0>
@pytest.mark.parametrize("flow", FLOWS, indirect=True)
def test_accept_second_offer(flow, cancellation_page, billing_page):
"""'Too expensive' → decline 1st offer → accept 2nd offer → subscription pending update."""
_reach_second_offer(cancellation_page, flow)
> cancellation_page.accept_offer()
tests/cancellation/test_cancellation.py:80:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/cancellation_page.py:90: in accept_offer
self.popup.get_by_role("button", name="Ok").click(timeout=self.T_NETWORK)
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:17876: in click
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:165: in click
return await self._frame._click(self._selector, strict=True, **params)
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:593: in _click
await self._channel.send("click", self._timeout, locals_to_params(locals()))
/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 0x7f1ee1c98b80>
cb = <function Channel.send.<locals>.<lambda> at 0x7f1ee0c60e50>
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: