1616
1717@pytest .mark .django_db
1818def test_challenge_request_budget_fields_required ():
19- user = UserFactory .build ()
20- # fill all fields except for budget and input / output fields
19+ user = UserFactory ()
20+ required_fields = [
21+ "title" ,
22+ "short_name" ,
23+ "start_date" ,
24+ "end_date" ,
25+ "abstract" ,
26+ "contact_email" ,
27+ "organizers" ,
28+ "challenge_setup" ,
29+ "data_set" ,
30+ "submission_assessment" ,
31+ "challenge_publication" ,
32+ "code_availability" ,
33+ "expected_number_of_teams" ,
34+ "number_of_tasks" ,
35+ "challenge_fee_agreement" ,
36+ "algorithm_inputs" ,
37+ "algorithm_outputs" ,
38+ "average_size_of_test_image_in_mb" ,
39+ "inference_time_average_minutes" ,
40+ "algorithm_selectable_gpu_type_choices" ,
41+ "algorithm_maximum_settable_memory_gb" ,
42+ "phase_1_number_of_submissions_per_team" ,
43+ "phase_2_number_of_submissions_per_team" ,
44+ "phase_1_number_of_test_images" ,
45+ "phase_2_number_of_test_images" ,
46+ ]
2147 data = {
2248 "creator" : user ,
2349 "title" : "Test request" ,
2450 "short_name" : "example1234" ,
2551 "start_date" : datetime .date .today (),
2652 "end_date" : datetime .date .today () + datetime .timedelta (days = 1 ),
27- "expected_number_of_participants" : 10 ,
28- "abstract" : "test" ,
29- "contact_email" : "test@test.com" ,
30- "organizers" : "test" ,
31- "challenge_setup" : "test" ,
32- "data_set" : "test" ,
33- "submission_assessment" : "test" ,
34- "challenge_publication" : "test" ,
35- "code_availability" : "test" ,
36- "expected_number_of_teams" : 10 ,
37- "number_of_tasks" : 1 ,
38- "challenge_fee_agreement" : True ,
39- }
40- form = ChallengeRequestForm (data = data , creator = user )
41- assert not form .is_valid ()
42-
43- data2 = {
44- "creator" : user ,
45- "title" : "Test request" ,
46- "short_name" : "example1234" ,
47- "start_date" : datetime .date .today (),
48- "end_date" : datetime .date .today () + datetime .timedelta (days = 1 ),
49- "expected_number_of_participants" : 10 ,
5053 "abstract" : "test" ,
5154 "contact_email" : "test@test.com" ,
5255 "organizers" : "test" ,
@@ -69,8 +72,17 @@ def test_challenge_request_budget_fields_required():
6972 "phase_1_number_of_test_images" : 1 ,
7073 "phase_2_number_of_test_images" : 1 ,
7174 }
72- form2 = ChallengeRequestForm (data = data2 , creator = user )
73- assert form2 .is_valid ()
75+ form = ChallengeRequestForm (data = data , creator = user )
76+ assert form .is_valid (), form .errors
77+
78+ for required_field in required_fields :
79+ incomplete_data = data .copy ()
80+ incomplete_data .pop (required_field )
81+
82+ form = ChallengeRequestForm (data = incomplete_data , creator = user )
83+ assert not form .is_valid ()
84+ assert required_field in form .errors
85+ assert form .errors [required_field ] == ["This field is required." ]
7486
7587
7688@pytest .mark .django_db
0 commit comments