@@ -118,6 +118,64 @@ def test_create_upload_model_invalid_columns(
118118 assert r .json () == {'columns' : {'foo' : ['"invalid" is not a valid choice.' ]}}
119119
120120
121+ @pytest .mark .django_db
122+ def test_create_upload_model_missing_delimiter (
123+ workspace : Workspace , user : User , authenticated_api_client
124+ ):
125+ workspace .set_user_permission (user , WorkspaceRoleChoice .WRITER )
126+ r : Response = authenticated_api_client .post (
127+ f'/api/workspaces/{ workspace .name } /uploads/csv/' ,
128+ {
129+ # Not an issue to specify invalid field_value, as that's checked after columns,
130+ # so the request will return before that is checked
131+ 'field_value' : 'field_value' ,
132+ 'edge' : False ,
133+ 'table_name' : 'table' ,
134+ 'columns' : {
135+ 'latitude' : 'number' ,
136+ 'longitude' : 'number' ,
137+ 'altitude' : 'number' ,
138+ 'timezone' : 'number' ,
139+ 'year built' : 'number' ,
140+ },
141+ 'quotechar' : '\" ' ,
142+ },
143+ format = 'json' ,
144+ )
145+
146+ assert r .status_code == 400
147+ assert r .json () == {'delimiter' : ['This field is required.' ]}
148+
149+
150+ @pytest .mark .django_db
151+ def test_create_upload_model_missing_quotechar (
152+ workspace : Workspace , user : User , authenticated_api_client
153+ ):
154+ workspace .set_user_permission (user , WorkspaceRoleChoice .WRITER )
155+ r : Response = authenticated_api_client .post (
156+ f'/api/workspaces/{ workspace .name } /uploads/csv/' ,
157+ {
158+ # Not an issue to specify invalid field_value, as that's checked after columns,
159+ # so the request will return before that is checked
160+ 'field_value' : 'field_value' ,
161+ 'edge' : False ,
162+ 'table_name' : 'table' ,
163+ 'columns' : {
164+ 'latitude' : 'number' ,
165+ 'longitude' : 'number' ,
166+ 'altitude' : 'number' ,
167+ 'timezone' : 'number' ,
168+ 'year built' : 'number' ,
169+ },
170+ 'delimiter' : ',' ,
171+ },
172+ format = 'json' ,
173+ )
174+
175+ assert r .status_code == 400
176+ assert r .json () == {'quotechar' : ['This field is required.' ]}
177+
178+
121179@pytest .mark .django_db
122180@pytest .mark .parametrize ('permission,status_code' , [(None , 404 ), (WorkspaceRoleChoice .READER , 403 )])
123181def test_create_upload_model_csv_invalid_permissions (
0 commit comments