def test_b_Upload(self): print "1: API Test Case ==> Test Case : 1 - File Uploading" d = { 'file': (StringIO(fileContents), filename), } response = self.client.post('file/uploads', data=d) print "### checking response code for uploading ###" self.assertEqual(response.status_code, 302) print "### checking if file exists in disk ###" self.assertEqual(os.path.exists(filePath), True) print "### checking if entry is added to database ###" with self.app.app_context(): db.init_app(self.app) self.assertEqual(fileUtilities.getFileName(filename), filename)
def test_h_fileDeDuping(self): print "7: Unit Test ==> Checking if deduping works fine" print "Uploading File with same content again" d = { 'file': (StringIO(fileContents), dupfilename), } response = self.client.post('file/uploads', data=d) print "Checking if second file is uploaded again or not in the disk" self.assertEqual(os.path.exists(dupfilePath), False) print "### checking if second file content is mapped to first file in db ###" with self.app.app_context(): db.init_app(self.app) self.assertEqual(fileUtilities.getFileName(dupfilename), filename)
def download_file(filename): """ Route to Download a File . It will checks if a file with same name or another file with same content exists in server by checking md5 in sqlitedb Parameters: filename type : str Description : The filename """ actualFilename = fileUtilities.getFileName(filename) if not actualFilename: abort(404) return send_from_directory(directory=UPLOAD_FOLDER, filename=actualFilename, attachment_filename=filename)
def test_j_zdelete(self): print "9: API Test Case : 5 - File deleting" print "deleting duplicate file" response = self.client.delete('file/uploads/' + dupfilename) print "Checking if file original file exist" self.assertEqual(os.path.exists(filePath), True) print "deleting original file" response = self.client.delete('file/uploads/' + filename) print "### checking response code for deleting ###" self.assertEqual(response.status_code, 200) ## checking response code print "### checking if file exists in the device after deletion of original and duplicate files ###" self.assertEqual(os.path.exists(filePath), False) print "### checking if entry is deleted from database ###" with self.app.app_context(): db.init_app(self.app) self.assertEqual(fileUtilities.getFileName(filename), None)
def delete_file(filename): """ Route to Delete a File . It will delete from DB as well as the disk . Parameters: filename type : str Description : The filename """ actualFile = fileUtilities.getFileName(filename) if not actualFile: abort(404) else: fileUtilities.deletefromDB(filename) fileToDelete = fileUtilities.safeDelete(actualFile) if fileToDelete: filePath = UPLOAD_FOLDER + "/" + actualFile os.path.exists(filePath) and os.remove(filePath) resp = jsonify(success=True) return resp
def test_g_getFileName(self): print "6: Unit Test ==> Testing etFileName () to filename having same md5" with self.app.app_context(): db.init_app(self.app) self.assertEqual(fileUtilities.getFileName(filename), filename)