From cf9234bd3b8912c867940aeb09fb27aa9c2c4011 Mon Sep 17 00:00:00 2001 From: Johannes Maron Date: Fri, 1 Nov 2024 10:51:01 +0100 Subject: [PATCH] Ref #310 -- Add regression test for custom formactions --- tests/test_forms.py | 18 ++++++++++++++++++ tests/testapp/templates/form.html | 1 + tests/testapp/views.py | 1 + 3 files changed, 20 insertions(+) diff --git a/tests/test_forms.py b/tests/test_forms.py index 4f9842e..a22e766 100644 --- a/tests/test_forms.py +++ b/tests/test_forms.py @@ -250,6 +250,22 @@ def test_file_insert_submit_value( assert "save_continue" in driver.page_source assert "continue_value" in driver.page_source + @pytest.mark.selenium + def test_file_insert_submit_formaction( + self, driver, live_server, upload_file, freeze_upload_folder + ): + driver.get(live_server + self.create_url) + file_input = driver.find_element(By.XPATH, "//input[@name='file']") + file_input.send_keys(upload_file) + assert file_input.get_attribute("name") == "file" + save_button = driver.find_element(By.XPATH, "//button[@name='custom_save']") + with wait_for_page_load(driver, timeout=10): + save_button.click() + assert "custom_save" in driver.page_source + assert "custom_target" in driver.page_source + assert "foo" in driver.page_source + assert "bar" in driver.page_source + @pytest.mark.selenium def test_multi_file( self, @@ -284,6 +300,8 @@ def test_multi_file( "other_file": [os.path.basename(yet_another_upload_file)], } + + def test_media(self): assert ClearableFileInput().media._js == ["s3file/js/s3file.js"] diff --git a/tests/testapp/templates/form.html b/tests/testapp/templates/form.html index bdaeba9..f8af819 100644 --- a/tests/testapp/templates/form.html +++ b/tests/testapp/templates/form.html @@ -16,6 +16,7 @@ {{ form }} + {{ form.media.js }} diff --git a/tests/testapp/views.py b/tests/testapp/views.py index 85e8f54..097147c 100644 --- a/tests/testapp/views.py +++ b/tests/testapp/views.py @@ -21,6 +21,7 @@ class ExampleCreateView(generic.CreateView): def form_valid(self, form): return JsonResponse( { + "GET": self.request.GET, "POST": self.request.POST, "FILES": { "file": self.request.FILES.getlist("file"),