Example #1
0
def setup_drive_data(testcase):
    # Ironic, using Gsync to setup the tests, but if it fails the tests
    # will fail anyway, so we will be okay.
    assert os.path.exists("tests/data")

    drive = Drive()
    drive.delete("drive://gsync_unittest/", skip_trash=True)
    drive.mkdir("drive://gsync_unittest/")
    drive.create("drive://gsync_unittest/open_for_read.txt", {})
    drive.update("drive://gsync_unittest/open_for_read.txt", {},
                 media_body=MediaFileUpload("tests/data/open_for_read.txt",
                                            mimetype=MimeTypes.BINARY_FILE,
                                            resumable=True))
Example #2
0
def setup_drive_data(testcase):
    # Ironic, using Gsync to setup the tests, but if it fails the tests
    # will fail anyway, so we will be okay.
    assert os.path.exists("tests/data")

    drive = Drive()
    drive.delete("drive://gsync_unittest/", skip_trash=True)
    drive.mkdir("drive://gsync_unittest/")
    drive.create("drive://gsync_unittest/open_for_read.txt", {})
    drive.update("drive://gsync_unittest/open_for_read.txt", {},
        media_body=MediaFileUpload("tests/data/open_for_read.txt",
            mimetype=MimeTypes.BINARY_FILE, resumable=True
        )
    )
Example #3
0
    def _update_data(self, path, src):
        debug("Updating remote file: %s" % repr(path))

        total_bytes_written = self.bytes_written
        bytes_written = 0
        info = src.get_info()

        def __callback(status):
            bytes_written = int(status.resumable_progress)
            self.bytes_written = total_bytes_written + bytes_written
            
        progress = Progress(GsyncOptions.progress, __callback)

        if GsyncOptions.dry_run:
            bytes_written = info.fileSize
            progress(MediaUploadProgress(bytes_written, bytes_written))
        else:
            progress.bytesTotal = info.fileSize

            drive = Drive()
            info = drive.update(
                path, info, media_body=src.get_uploader(),
                progress_callback=progress
            )

            if info is not None:
                bytes_written = long(info.get('fileSize', '0'))
                debug("Final file size: %d" % bytes_written)
            else:
                debug("Update failed")

        progress.complete(bytes_written)
        self.bytes_written = total_bytes_written + bytes_written
Example #4
0
    def _update_data(self, path, src):
        debug("Updating remote file: %s" % repr(path))

        total_bytes_written = self.bytes_written
        bytes_written = 0
        info = src.get_info()

        def __callback(status):
            bytes_written = int(status.resumable_progress)
            self.bytes_written = total_bytes_written + bytes_written

        progress = Progress(GsyncOptions.progress, __callback)

        if GsyncOptions.dry_run:
            bytes_written = info.fileSize
            progress(MediaUploadProgress(bytes_written, bytes_written))
        else:
            progress.bytesTotal = info.fileSize

            drive = Drive()
            info = drive.update(path,
                                info,
                                media_body=src.get_uploader(),
                                progress_callback=progress)

            if info is not None:
                bytes_written = int(info.get('fileSize', '0'))
                debug("Final file size: %d" % bytes_written)
            else:
                debug("Update failed")

        progress.complete(bytes_written)
        self.bytes_written = total_bytes_written + bytes_written
Example #5
0
    def test_revisions(self):
        drive = Drive()

        num_revisions = 6

        info = drive.create("drive://gsync_unittest/revision_test",
                            {"description": "revision-0"})
        self.assertEqual(info['description'], "revision-0")

        for revision in range(1, num_revisions):
            description = "revision-%d" % revision
            info = drive.update("drive://gsync_unittest/revision_test",
                                {"description": description},
                                media_body=MediaFileUpload(
                                    "tests/data/open_for_read.txt",
                                    mimetype=MimeTypes.BINARY_FILE,
                                    resumable=True))
            self.assertEqual(info['description'], description)

        f = drive.open("drive://gsync_unittest/revision_test", "r")
        revisions = f.revisions()

        self.assertEqual(len(revisions), num_revisions)
        self.assertEqual(int(revisions[0]['fileSize']), 0)
        self.assertNotEqual(int(revisions[-1]['fileSize']), 0)
Example #6
0
    def test_revisions(self):
        drive = Drive()

        num_revisions = 6

        info = drive.create("drive://gsync_unittest/revision_test", {
            "description": "revision-0"
        })
        self.assertEqual(info['description'], "revision-0")

        for revision in range(1, num_revisions):
            description = "revision-%d" % revision
            info = drive.update("drive://gsync_unittest/revision_test", {
                    "description": description
                },
                media_body=MediaFileUpload("tests/data/open_for_read.txt",
                    mimetype=MimeTypes.BINARY_FILE, resumable=True
                )
            )
            self.assertEqual(info['description'], description)

        f = drive.open("drive://gsync_unittest/revision_test", "r")
        revisions = f.revisions()

        self.assertEqual(len(revisions), num_revisions)
        self.assertEqual(int(revisions[0]['fileSize']), 0)
        self.assertNotEqual(int(revisions[-1]['fileSize']), 0)
Example #7
0
    def _updateFile(self, path, src):
        debug("Updating remote file: %s" % repr(path))

        totalBytesWritten = self.bytesWritten
        bytesWritten = 0
        info = src.getInfo()

        def _callback(status):
            bytesWritten = int(status.resumable_progress)
            self.bytesWritten = totalBytesWritten + bytesWritten
            
        progress = Progress(GsyncOptions.progress, _callback)

        if GsyncOptions.dry_run:
            bytesWritten = info.fileSize
            progress(MediaUploadProgress(bytesWritten, bytesWritten))
        else:
            drive = Drive()
            info = drive.update(path, info, src.getUploader(), progress)

            if info is not None:
                bytesWritten = long(info.get('fileSize', '0'))
            else:
                debug("Update failed")

        progress.complete(bytesWritten)
        self.bytesWritten = totalBytesWritten + bytesWritten
Example #8
0
    def test_update_with_progress(self):
        drive = Drive()

        info = drive.create("drive://gsync_unittest/update_test",
                            {"description": "Old description"})
        self.assertEqual(info['title'], "update_test")

        def progress_callback(status):
            progress_callback.called = True

        progress_callback.called = False

        info = drive.update("drive://gsync_unittest/update_test",
                            {"description": "New description"},
                            media_body=MediaFileUpload(
                                "tests/data/open_for_read.txt",
                                mimetype=MimeTypes.BINARY_FILE,
                                resumable=True),
                            progress_callback=progress_callback)
        self.assertEqual(info['description'], "New description")
        self.assertTrue(int(info['fileSize']) > 0)
        self.assertTrue(progress_callback.called)
Example #9
0
    def test_update_with_progress(self):
        drive = Drive()

        info = drive.create("drive://gsync_unittest/update_test", {
            "description": "Old description"
        })
        self.assertEqual(info['title'], "update_test")

        def progress_callback(status):
            progress_callback.called = True

        progress_callback.called = False

        info = drive.update("drive://gsync_unittest/update_test", {
                "description": "New description"
            },
            media_body=MediaFileUpload("tests/data/open_for_read.txt",
                mimetype=MimeTypes.BINARY_FILE, resumable=True
            ),
            progress_callback=progress_callback
        )
        self.assertEqual(info['description'], "New description")
        self.assertTrue(int(info['fileSize']) > 0)
        self.assertTrue(progress_callback.called)