Ver código fonte

[fb] Fix error message when uploading on already existing destination

Fix test
Romain Rigaux 12 anos atrás
pai
commit
18dccfd

+ 3 - 3
apps/filebrowser/src/filebrowser/views_test.py

@@ -987,7 +987,7 @@ def test_upload_file():
     assert_equal(stats['group'], USER_NAME)
 
     # Just upload the current python file
-    resp = client.post('/filebrowser/upload/file?dest=%s' % HDFS_DEST_DIR,
+    resp = client.post('/filebrowser/upload/file?dest=%s' % HDFS_DEST_DIR, # GET param avoids infinite looping 
                        dict(dest=HDFS_DEST_DIR, hdfs_file=file(LOCAL_FILE)))
     response = json.loads(resp.content)
 
@@ -1002,14 +1002,14 @@ def test_upload_file():
     assert_equal(actual, expected)
 
     # Upload again and so fails because file already exits
-    resp = client.post('/filebrowser/upload/file',
+    resp = client.post('/filebrowser/upload/file?dest=%s' % HDFS_DEST_DIR,
                        dict(dest=HDFS_DEST_DIR, hdfs_file=file(LOCAL_FILE)))
     response = json.loads(resp.content)
     assert_equal(-1, response['status'], response)
     assert_true('already exists' in response['data'], response)
 
     # Upload in / and fails because of missing permissions
-    resp = client.post('/filebrowser/upload/file',
+    resp = client.post('/filebrowser/upload/file?dest=%s' % '/',
                        dict(dest='/', hdfs_file=file(LOCAL_FILE)))
     response = json.loads(resp.content)
     assert_equal(-1, response['status'], response)

+ 2 - 2
desktop/libs/hadoop/src/hadoop/fs/upload.py

@@ -125,7 +125,7 @@ class HDFSfileUploadHandler(FileUploadHandler):
     self._file = None
     self._starttime = 0
     self._activated = False
-    self._destination = request.GET.get('dest', None)
+    self._destination = request.GET.get('dest', None) # GET param avoids infinite looping
     self.request = request
     # Need to directly modify FileUploadHandler.chunk_size
     FileUploadHandler.chunk_size = UPLOAD_CHUNK_SIZE.get()
@@ -146,7 +146,7 @@ class HDFSfileUploadHandler(FileUploadHandler):
 
   def receive_data_chunk(self, raw_data, start):
     if not self._activated:
-      return raw_data
+      raise StopUpload()
 
     try:
       self._file.write(raw_data)