File tree Expand file tree Collapse file tree 2 files changed +22
-2
lines changed
Expand file tree Collapse file tree 2 files changed +22
-2
lines changed Original file line number Diff line number Diff line change @@ -101,6 +101,26 @@ def test_upload_initialize(api_client, embargoed):
101101 assert upload .blob .name == f'blobs/{ upload_id [:3 ]} /{ upload_id [3 :6 ]} /{ upload_id } '
102102
103103
104+ @pytest .mark .django_db
105+ @pytest .mark .parametrize ('dandiset_id' , ['DANDI:abc' , 'DANDI:123456' , '001' ])
106+ def test_upload_initialize_invalid_dandiset (api_client , dandiset_id ):
107+ user = UserFactory .create ()
108+ DandisetFactory .create (embargo_status = Dandiset .EmbargoStatus .UNEMBARGOING , owners = [user ])
109+ api_client .force_authenticate (user = user )
110+
111+ content_size = 123
112+ resp = api_client .post (
113+ '/api/uploads/initialize/' ,
114+ {
115+ 'contentSize' : content_size ,
116+ 'digest' : {'algorithm' : 'dandi:dandi-etag' , 'value' : 'f' * 32 + '-1' },
117+ 'dandiset' : dandiset_id ,
118+ },
119+ )
120+
121+ assert resp .status_code == 400
122+
123+
104124@pytest .mark .django_db
105125def test_upload_initialize_unembargo_in_progress (api_client ):
106126 user = UserFactory .create ()
Original file line number Diff line number Diff line change @@ -39,7 +39,7 @@ class DigestSerializer(serializers.Serializer):
3939class UploadInitializationRequestSerializer (serializers .Serializer ):
4040 contentSize = serializers .IntegerField (min_value = 1 ) # noqa: N815
4141 digest = DigestSerializer ()
42- dandiset = serializers .RegexField (Dandiset .IDENTIFIER_REGEX )
42+ dandiset = serializers .RegexField (f'^ { Dandiset .IDENTIFIER_REGEX } $' )
4343
4444
4545class PartInitializationResponseSerializer (serializers .Serializer ):
@@ -131,7 +131,7 @@ def upload_initialize_view(request: AuthenticatedRequest) -> HttpResponseBase:
131131 if digest ['algorithm' ] != 'dandi:dandi-etag' :
132132 return Response ('Unsupported Digest Type' , status = 400 )
133133 etag = digest ['value' ]
134- dandiset_id = request_serializer .validated_data ['dandiset' ]
134+ dandiset_id = int ( request_serializer .validated_data ['dandiset' ])
135135 dandiset = get_object_or_404 (
136136 get_visible_dandisets (request .user ),
137137 id = dandiset_id ,
You can’t perform that action at this time.
0 commit comments