예제 #1
0
 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)
예제 #2
0
    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)
예제 #3
0
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)
예제 #4
0
    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)
예제 #5
0
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
예제 #6
0
 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)