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)
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
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)