return True
if not pathinfo.exists and db_entry.size is None:
+ print("NOT because", pathinfo.exists, db_entry.size)
return False
+ print("NOT because", pathinfo.size, pathinfo.ctime, pathinfo.mtime,
+ db_entry.size, db_entry.ctime, db_entry.mtime,
+ ((pathinfo.size, pathinfo.ctime, pathinfo.mtime) !=
+ (db_entry.size, db_entry.ctime, db_entry.mtime)))
return ((pathinfo.size, pathinfo.ctime, pathinfo.mtime) !=
(db_entry.size, db_entry.ctime, db_entry.mtime))
| IN_EXCL_UNLINK
)
self._notifier.watch(self._local_filepath, mask=self.mask, callbacks=[self._notify],
- recursive=True)
+ recursive=False)#True)
+ print "WATCHING", self._local_filepath
def start_monitoring(self):
self._log("start_monitoring")
import os, sys
+import shutil
from twisted.trial import unittest
from twisted.internet import defer, task
from allmydata.util.fileutil import abspath_expanduser_unicode
from allmydata.immutable.upload import Data
+from twisted.internet.base import DelayedCall
+#DelayedCall.debug = True
class MagicFolderTestMixin(MagicFolderCLITestMixin, ShouldFailMixin, ReallyEqualMixin, NonASCIIPathMixin):
"""
def Alice_to_delete_file():
print "Alice deletes the file!\n"
- os.unlink(self.file_path)
+ shutil.move(self.file_path, self.file_path + u'.backup')
self.notify(to_filepath(self.file_path), self.inotify.IN_DELETE, magic=self.alice_magicfolder)
d.addCallback(_wait_for, Alice_to_delete_file)
return d0
d.addCallback(notify_bob_moved)
+ # so on just-windows the above doesn't do IN_MOVED_FROM nor
+ # simulate same in RealTest; trying to compare to unix
+
d.addCallback(lambda ign: self._check_version_in_dmd(self.alice_magicfolder, u"file1", 1))
d.addCallback(lambda ign: self._check_version_in_local_db(self.alice_magicfolder, u"file1", 1))
d.addCallback(lambda ign: self._check_uploader_count('objects_failed', 0))
# Writing to the filesystem causes the notification.
# However, flushing filesystem buffers may be necessary on Windows.
if flush:
- fileutil.flush_volume(path.path)
+ try:
+ pass#fileutil.flush_volume(path.path)
+ except Exception:
+ pass # e.g. permission errors
try:
magic_folder.get_inotify_module()