Skip to content

Commit f05504b

Browse files
committed
replace mocker.spy against expect_response
1 parent 2b96688 commit f05504b

File tree

1 file changed

+15
-22
lines changed

1 file changed

+15
-22
lines changed

testapp/tests/test_e2e_stepper.py

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
import json
21
import pytest
32
from playwright.sync_api import expect
4-
from time import sleep
53

64
from django.urls import path
75

@@ -32,7 +30,7 @@ class StepperCollectionView(ContextMixin, FormCollectionView):
3230

3331
@pytest.mark.urls(__name__)
3432
@pytest.mark.parametrize('viewname', ['empty_stepper', 'empty_stepper_forced'])
35-
def test_steps_remain_inactive(page, mocker, viewname):
33+
def test_steps_remain_inactive(page, viewname):
3634
stepper_collection = page.locator('django-stepper-collection')
3735
expect(stepper_collection).to_be_visible()
3836

@@ -65,34 +63,31 @@ def test_steps_remain_inactive(page, mocker, viewname):
6563
assert len(fields_error_list) == 2
6664
expect(fields_error_list[0]).to_be_empty()
6765
expect(fields_error_list[1]).to_be_empty()
68-
spy = mocker.spy(FormCollectionView, 'patch')
69-
collections[0].locator('button[name="next"]').click()
70-
sleep(0.2)
7166
if viewname == 'empty_stepper_forced':
7267
# in forced submission mode, the form is submitted even if invalid
73-
spy.assert_called()
74-
assert spy.spy_return.status_code == 422
68+
with page.expect_response(page.url) as response_info:
69+
collections[0].locator('button[name="next"]').click()
70+
assert response_info.value.ok is False
71+
assert response_info.value.status == 422
7572
else:
76-
spy.assert_not_called()
73+
collections[0].locator('button[name="next"]').click()
7774
expect(collections[0].locator('.dj-form-errors .dj-errorlist')).to_be_empty()
7875
expect(fields_error_list[0]).to_contain_text('This field is required.')
7976
expect(fields_error_list[1]).to_contain_text('This field is required.')
8077

8178

8279
@pytest.mark.urls(__name__)
8380
@pytest.mark.parametrize('viewname', ['empty_stepper'])
84-
def test_steps_become_active(page, mocker, viewname):
81+
def test_steps_become_active(page, viewname):
8582
stepper_collection = page.locator('django-stepper-collection')
8683
step_items = stepper_collection.locator('ul.stepper-horizontal > li.stepper-step').all()
8784
collections = stepper_collection.locator('django-form-collection').all()
8885

8986
collections[0].locator('input[name="first_name"]').fill("John")
9087
collections[0].locator('input[name="last_name"]').fill("Doe")
91-
spy = mocker.spy(FormCollectionView, 'patch')
92-
collections[0].locator('button[name="next"]').click()
93-
sleep(0.2)
94-
spy.assert_called()
95-
assert spy.spy_return.status_code == 200
88+
with page.expect_response(page.url) as response_info:
89+
collections[0].locator('button[name="next"]').click()
90+
assert response_info.value.ok is True
9691

9792
expect(step_items[0]).not_to_have_attribute('aria-current', r'.*')
9893
expect(step_items[0]).to_have_class('stepper-step visited')
@@ -164,13 +159,11 @@ def test_steps_become_active(page, mocker, viewname):
164159
collections[2].locator('input[name="card_owner"]').fill("John Doe")
165160
collections[2].locator('input[name="card_number"]').fill("1234 5678 9012 3456")
166161

167-
# submit the three form
168-
spy = mocker.spy(FormCollectionView, 'post')
169-
collections[2].locator('button[name="activate_submit"]').click()
170-
sleep(0.2)
171-
spy.assert_called()
172-
assert spy.spy_return.status_code == 200
173-
request_body = json.loads(spy.call_args.args[1].body)
162+
# submit all three forms
163+
with page.expect_response(page.url) as response_info:
164+
collections[2].locator('button[name="activate_submit"]').click()
165+
assert response_info.value.ok is True
166+
request_body = response_info.value.request.post_data_json
174167
expected = {
175168
'extra_data': {},
176169
'formset_data': {

0 commit comments

Comments
 (0)