Skip to content

Commit c7e3d5b

Browse files
authored
fix(eng/test-validate_forms): Show error if form is not valid (#13045)
1 parent 941dd6c commit c7e3d5b

File tree

3 files changed

+24
-16
lines changed

3 files changed

+24
-16
lines changed

dojo/engagement/views.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -878,13 +878,11 @@ def validate_forms(
878878
level are bubbled up to the user first before we process too much
879879
"""
880880
form_validation_list = []
881-
if context.get("form") is not None:
882-
form_validation_list.append(context.get("form").is_valid())
883-
if context.get("jform") is not None:
884-
form_validation_list.append(context.get("jform").is_valid())
885-
if context.get("cred_form") is not None:
886-
form_validation_list.append(context.get("cred_form").is_valid())
887-
return all(form_validation_list)
881+
for form_name in ["form", "jform", "cred_form"]:
882+
if (form := context.get(form_name)) is not None:
883+
if errors := form.errors:
884+
form_validation_list.append(errors)
885+
return form_validation_list
888886

889887
def create_engagement(
890888
self,
@@ -1091,7 +1089,9 @@ def post(
10911089
)
10921090
request._start_time = time.perf_counter()
10931091
# ensure all three forms are valid first before moving forward
1094-
if not self.validate_forms(context):
1092+
if form_errors := self.validate_forms(context):
1093+
for form_error in form_errors:
1094+
add_error_message_to_response(form_error)
10951095
return self.failure_redirect(request, context)
10961096
# Process the jira form if it is present
10971097
if form_error := self.process_jira_form(request, context.get("jform"), context):

dojo/test/views.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -879,11 +879,11 @@ def validate_forms(
879879
level are bubbled up to the user first before we process too much
880880
"""
881881
form_validation_list = []
882-
if context.get("form") is not None:
883-
form_validation_list.append(context.get("form").is_valid())
884-
if context.get("jform") is not None:
885-
form_validation_list.append(context.get("jform").is_valid())
886-
return all(form_validation_list)
882+
for form_name in ["form", "jform"]:
883+
if (form := context.get(form_name)) is not None:
884+
if errors := form.errors:
885+
form_validation_list.append(errors)
886+
return form_validation_list
887887

888888
def process_form(
889889
self,
@@ -1031,8 +1031,10 @@ def post(
10311031
)
10321032
request._start_time = time.perf_counter()
10331033
# ensure all three forms are valid first before moving forward
1034-
if not self.validate_forms(context):
1035-
return self.failure_redirect(context)
1034+
if form_errors := self.validate_forms(context):
1035+
for form_error in form_errors:
1036+
add_error_message_to_response(form_error)
1037+
return self.failure_redirect(request, context)
10361038
# Process the jira form if it is present
10371039
if form_error := self.process_jira_form(request, context.get("jform"), context):
10381040
add_error_message_to_response(form_error)

unittests/test_import_reimport.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2049,7 +2049,13 @@ def import_scan_ui(self, engagement, payload):
20492049
# response = self.client_ui.post(reverse('import_scan_results', args=(engagement, )), urlencode(payload), content_type='application/x-www-form-urlencoded')
20502050
response = self.client_ui.post(reverse("import_scan_results", args=(engagement, )), payload)
20512051

2052-
test = Test.objects.get(id=response.url.split("/")[-1])
2052+
url_split = response.url.split("/")
2053+
self.assertEqual(url_split[1], "test", response.url)
2054+
try:
2055+
test_id = int(url_split[-1])
2056+
except ValueError:
2057+
self.fail(f"'{url_split[-1]}' in {response.url} is not a number")
2058+
test = Test.objects.get(id=test_id)
20532059
# f = Path('response.html').open('w+')
20542060
# f.write(str(response.content, 'utf-8'))
20552061
# f.close()

0 commit comments

Comments
 (0)