def test_mignore(self): # 1) test that tracked items are unaffected os.mkdir(self.test_folder_local + "/bar") self.wait_for_idle() with open(self.m.sync.mignore_path, "w") as f: f.write("foo/\n") # ignore folder "foo" f.write("bar\n") # ignore file or folder "bar" f.write("build\n") # ignore file or folder "build" self.wait_for_idle() self.assert_synced(self.test_folder_local, self.test_folder_dbx) self.assert_exists(self.test_folder_dbx, "bar") # 2) test that new items are excluded os.mkdir(self.test_folder_local + "/foo") self.wait_for_idle() self.assertIsNone( self.m.client.get_metadata(self.test_folder_dbx + "/foo")) # 3) test that renaming an item excludes it move(self.test_folder_local + "/bar", self.test_folder_local + "/build") self.wait_for_idle() self.assertIsNone( self.m.client.get_metadata(self.test_folder_dbx + "/build")) # 4) test that renaming an item includes it move(self.test_folder_local + "/build", self.test_folder_local + "/folder") self.wait_for_idle() self.assert_exists(self.test_folder_dbx, "folder") self.clean_local() self.wait_for_idle() # check for fatal errors self.assertFalse(self.m.fatal_errors)
def test_ignore_tree_move(sync): new_dir = Path(sync.dropbox_path) / "parent" new_dir.mkdir() for i in range(10): file = new_dir / f"test_{i}" file.touch() sync.wait_for_local_changes() new_dir_1 = Path(sync.dropbox_path) / "parent2" with sync.fs_events.ignore(DirMovedEvent(str(new_dir), str(new_dir_1))): move(new_dir, new_dir_1) sync_events, local_cursor = sync.wait_for_local_changes() assert len(sync_events) == 0
def test_mignore(m): """Tests the exclusion of local items by an mignore file.""" # 1) test that tracked items are unaffected os.mkdir(m.test_folder_local + "/bar") wait_for_idle(m) with open(m.sync.mignore_path, "w") as f: f.write("foo/\n") # ignore folder "foo" f.write("bar\n") # ignore file or folder "bar" f.write("build\n") # ignore file or folder "build" wait_for_idle(m) assert_synced(m) assert_exists(m, "/sync_tests", "bar") # 2) test that new items are excluded os.mkdir(m.test_folder_local + "/foo") wait_for_idle(m) assert not (m.client.get_metadata("/sync_tests/foo")) # 3) test that renaming an item excludes it move(m.test_folder_local + "/bar", m.test_folder_local + "/build") wait_for_idle(m) assert not (m.client.get_metadata("/sync_tests/build")) # 4) test that renaming an item includes it move(m.test_folder_local + "/build", m.test_folder_local + "/folder") wait_for_idle(m) assert_exists(m, "/sync_tests", "folder") clean_local(m) wait_for_idle(m) # check for fatal errors assert not m.fatal_errors