@@ -30,8 +30,8 @@ def test_dataset_api_checks_duplicate_names_for_same_user(self):
3030 resp = self .client .post (reverse ("data-list" ), {
3131 'name' : 'Test!' ,
3232 'type' : Data .COMPETITION_BUNDLE ,
33- 'request_sassy_file_name' : faker .file_name (),
34- 'file_name' : faker .file_name (),
33+ 'request_sassy_file_name' : faker .file_name (extension = '.zip' ),
34+ 'file_name' : faker .file_name (extension = '.zip' ),
3535 'file_size' : 1000 ,
3636 })
3737
@@ -42,7 +42,7 @@ def test_dataset_api_checks_duplicate_names_for_same_user(self):
4242 resp = self .client .put (reverse ("data-detail" , args = (self .existing_dataset .pk ,)), {
4343 'name' : 'Test!' ,
4444 'type' : Data .COMPETITION_BUNDLE ,
45- 'request_sassy_file_name' : faker .file_name (),
45+ 'request_sassy_file_name' : faker .file_name (extension = '.zip' ),
4646 'file_size' : 1000 ,
4747 })
4848 assert resp .status_code == 200
@@ -77,8 +77,8 @@ def test_dataset_api_check_quota(self):
7777 resp = self .client .post (reverse ("data-list" ), {
7878 'name' : 'new-file-test' ,
7979 'type' : Data .COMPETITION_BUNDLE ,
80- 'request_sassy_file_name' : faker .file_name (),
81- 'file_name' : faker .file_name (),
80+ 'request_sassy_file_name' : faker .file_name (extension = '.zip' ),
81+ 'file_name' : faker .file_name (extension = '.zip' ),
8282 'file_size' : file_size ,
8383 })
8484
@@ -90,12 +90,28 @@ def test_dataset_api_check_quota(self):
9090 resp = self .client .post (reverse ("data-list" ), {
9191 'name' : 'new-file-test' ,
9292 'type' : Data .COMPETITION_BUNDLE ,
93- 'request_sassy_file_name' : faker .file_name (),
93+ 'request_sassy_file_name' : faker .file_name (extension = '.zip' ),
9494 'file_name' : faker .file_name (),
9595 'file_size' : file_size ,
9696 })
9797 assert resp .status_code == 201
9898
99+ def test_dataset_api_rejects_non_zip_files (self ):
100+ self .client .login (username = 'creator' , password = 'creator' )
101+
102+ # Attempt to upload a non-zip file
103+ resp = self .client .post (reverse ("data-list" ), {
104+ 'name' : 'non-zip-test' ,
105+ 'type' : Data .COMPETITION_BUNDLE ,
106+ 'request_sassy_file_name' : faker .file_name (extension = '.py' ),
107+ 'file_name' : faker .file_name (extension = '.py' ),
108+ 'file_size' : 1000 ,
109+ })
110+
111+ assert resp .status_code == 400
112+ assert "non_field_errors" in resp .data
113+ assert resp .data ["non_field_errors" ][0 ] == "Only zip files are allowed!"
114+
99115
100116class DatasetDetailTests (TestCase ):
101117 def setUp (self ):
0 commit comments