Skip to content

Commit 392f71b

Browse files
committed
Add tests for missing delimiter and quote character
1 parent f33772f commit 392f71b

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

multinet/api/tests/test_upload_csv.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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)])
123181
def test_create_upload_model_csv_invalid_permissions(

0 commit comments

Comments
 (0)