Пример #1
0
    def test_rapid_remote_changes(self):

        shutil.copy(self.resources + "/file.txt", self.test_folder_local)
        self.wait_for_idle()

        md = self.m.client.get_metadata(self.test_folder_dbx + "/file.txt")

        for t in (0.1, 0.1, 0.5, 0.5, 1.0, 1.0, 2.0, 2.0):
            time.sleep(t)
            with open(self.resources + "/file.txt", "a") as f:
                f.write(f" {t} ")
            md = self.m.client.upload(
                self.resources + "/file.txt",
                self.test_folder_dbx + "/file.txt",
                mode=WriteMode.update(md.rev),
            )

        with open(self.resources + "/file.txt", "w") as f:
            f.write("content")  # reset file content

        self.wait_for_idle()

        self.assert_synced(self.test_folder_local, self.test_folder_dbx)
        self.assert_exists(self.test_folder_dbx, "file.txt")
        self.assert_count(self.test_folder_dbx, 1)

        # check for fatal errors
        self.assertFalse(self.m.fatal_errors)
Пример #2
0
def test_rapid_remote_changes(m):
    """Tests remote changes to the content of a file with varying intervals."""

    shutil.copy(resources + "/file.txt", m.test_folder_local)
    wait_for_idle(m)

    md = m.client.get_metadata("/sync_tests/file.txt")

    for t in (0.1, 0.1, 0.5, 0.5, 1.0, 1.0, 2.0, 2.0):
        time.sleep(t)
        with open(resources + "/file.txt", "a") as f:
            f.write(f" {t} ")
        md = m.client.upload(
            resources + "/file.txt",
            "/sync_tests/file.txt",
            mode=WriteMode.update(md.rev),
        )

    # reset file content
    with open(resources + "/file.txt", "w") as f:
        f.write("content")

    wait_for_idle(m)

    assert_synced(m)
    assert_exists(m, "/sync_tests", "file.txt")
    assert_child_count(m, "/sync_tests", 1)

    # check for fatal errors
    assert not m.fatal_errors
Пример #3
0
 def upload_file(self, fd, rem_path, rev, pg):
     try:
         #dbx.files_upload(f.read(), rem_path, mode=WriteMode('overwrite'),
         self.dbx.files_upload(fd.read(),
                               rem_path,
                               mode=WriteMode.update(rev),
                               property_groups=[pg])
         print(' done.')
     except ApiError as err:
         # This checks for the specific error where a user doesn't have
         # enough Dropbox space quota to upload this file
         if (err.error.is_path()
                 and err.error.get_path().error.is_insufficient_space()):
             sys.exit("ERROR: Cannot back up; insufficient space.")
         elif err.user_message_text:
             print(err.user_message_text)
             sys.exit(100)
         else:
             print(err)
             sys.exit(101)
     except Exception as err:
         sys.exit('Call to Dropbox to upload file data failed: %s' % err)