Skip to content

Commit cf9234b

Browse files
committed
Ref #310 -- Add regression test for custom formactions
1 parent 368999b commit cf9234b

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

tests/test_forms.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,22 @@ def test_file_insert_submit_value(
250250
assert "save_continue" in driver.page_source
251251
assert "continue_value" in driver.page_source
252252

253+
@pytest.mark.selenium
254+
def test_file_insert_submit_formaction(
255+
self, driver, live_server, upload_file, freeze_upload_folder
256+
):
257+
driver.get(live_server + self.create_url)
258+
file_input = driver.find_element(By.XPATH, "//input[@name='file']")
259+
file_input.send_keys(upload_file)
260+
assert file_input.get_attribute("name") == "file"
261+
save_button = driver.find_element(By.XPATH, "//button[@name='custom_save']")
262+
with wait_for_page_load(driver, timeout=10):
263+
save_button.click()
264+
assert "custom_save" in driver.page_source
265+
assert "custom_target" in driver.page_source
266+
assert "foo" in driver.page_source
267+
assert "bar" in driver.page_source
268+
253269
@pytest.mark.selenium
254270
def test_multi_file(
255271
self,
@@ -284,6 +300,8 @@ def test_multi_file(
284300
"other_file": [os.path.basename(yet_another_upload_file)],
285301
}
286302

303+
304+
287305
def test_media(self):
288306
assert ClearableFileInput().media._js == ["s3file/js/s3file.js"]
289307

tests/testapp/templates/form.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
{{ form }}
1717
<input type="submit" name="save" value="Save"/>
1818
<button type="submit" name="save_continue" value="continue_value">Save &amp; continue</button>
19+
<button type="submit" name="custom_save" value="custom_target" formaction="{% url 'example-create' %}?foo=bar">Save &amp; continue</button>
1920
</form>
2021
{{ form.media.js }}
2122
</body>

tests/testapp/views.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class ExampleCreateView(generic.CreateView):
2121
def form_valid(self, form):
2222
return JsonResponse(
2323
{
24+
"GET": self.request.GET,
2425
"POST": self.request.POST,
2526
"FILES": {
2627
"file": self.request.FILES.getlist("file"),

0 commit comments

Comments
 (0)