1414)
1515
1616
17+ @pytest .mark .parametrize (
18+ "required_field" ,
19+ [
20+ "title" ,
21+ "short_name" ,
22+ "start_date" ,
23+ "end_date" ,
24+ "abstract" ,
25+ "contact_email" ,
26+ "organizers" ,
27+ "challenge_setup" ,
28+ "data_set" ,
29+ "submission_assessment" ,
30+ "challenge_publication" ,
31+ "code_availability" ,
32+ "expected_number_of_teams" ,
33+ "number_of_tasks" ,
34+ "challenge_fee_agreement" ,
35+ "algorithm_inputs" ,
36+ "algorithm_outputs" ,
37+ "average_size_of_test_image_in_mb" ,
38+ "inference_time_average_minutes" ,
39+ "algorithm_selectable_gpu_type_choices" ,
40+ "algorithm_maximum_settable_memory_gb" ,
41+ "phase_1_number_of_submissions_per_team" ,
42+ "phase_2_number_of_submissions_per_team" ,
43+ "phase_1_number_of_test_images" ,
44+ "phase_2_number_of_test_images" ,
45+ ],
46+ )
1747@pytest .mark .django_db
18- def test_challenge_request_budget_fields_required ():
19- user = UserFactory .build ()
20- # fill all fields except for budget and input / output fields
48+ def test_challenge_request_budget_fields_required (required_field ):
49+ user = UserFactory ()
2150 data = {
2251 "creator" : user ,
2352 "title" : "Test request" ,
2453 "short_name" : "example1234" ,
2554 "start_date" : datetime .date .today (),
2655 "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 ,
5056 "abstract" : "test" ,
5157 "contact_email" : "test@test.com" ,
5258 "organizers" : "test" ,
@@ -69,8 +75,15 @@ def test_challenge_request_budget_fields_required():
6975 "phase_1_number_of_test_images" : 1 ,
7076 "phase_2_number_of_test_images" : 1 ,
7177 }
72- form2 = ChallengeRequestForm (data = data2 , creator = user )
73- assert form2 .is_valid ()
78+ form = ChallengeRequestForm (data = data , creator = user )
79+ assert form .is_valid (), form .errors
80+
81+ data .pop (required_field )
82+
83+ form = ChallengeRequestForm (data = data , creator = user )
84+ assert not form .is_valid ()
85+ assert required_field in form .errors
86+ assert form .errors [required_field ] == ["This field is required." ]
7487
7588
7689@pytest .mark .django_db
0 commit comments