Merge lp:~facundo/ubuntuone-client/different-dir-deletion-check into lp:ubuntuone-client

Proposed by Facundo Batista
Status: Merged
Approved by: Facundo Batista
Approved revision: 1190
Merged at revision: 1195
Proposed branch: lp:~facundo/ubuntuone-client/different-dir-deletion-check
Merge into: lp:ubuntuone-client
Diff against target: 75 lines (+17/-2)
2 files modified
tests/syncdaemon/test_eq_inotify.py (+15/-0)
ubuntuone/syncdaemon/filesystem_notifications.py (+2/-2)
To merge this branch: bzr merge lp:~facundo/ubuntuone-client/different-dir-deletion-check
Reviewer Review Type Date Requested Status
Facundo Batista (community) Approve
Guillermo Gonzalez Approve
Review via email: mp+92282@code.launchpad.net

Commit message

Check where to call handle_dir_delete in a better place.

Description of the change

Check where to call handle_dir_delete in a better place.

This is to not skip the signal if faked from different move situations.

Tests included.

To post a comment you must log in.
Revision history for this message
Guillermo Gonzalez (verterok) wrote :

+1

review: Approve
Revision history for this message
Facundo Batista (facundo) wrote :

Approving with one review

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'tests/syncdaemon/test_eq_inotify.py'
--- tests/syncdaemon/test_eq_inotify.py 2012-01-18 20:47:18 +0000
+++ tests/syncdaemon/test_eq_inotify.py 2012-02-09 14:42:13 +0000
@@ -1375,6 +1375,9 @@
1375 if path != fromdir:1375 if path != fromdir:
1376 self.finished_error("received a wrong path")1376 self.finished_error("received a wrong path")
1377 else:1377 else:
1378 # file deletion should remove its watch
1379 self.assertNotIn(path, self.eq.monitor._general_watchs)
1380
1378 remove_dir(todir)1381 remove_dir(todir)
1379 remove_dir(helpdir)1382 remove_dir(helpdir)
1380 self.finished_ok()1383 self.finished_ok()
@@ -1467,6 +1470,11 @@
1467 todir = os.path.join(self.root_dir, "bar")1470 todir = os.path.join(self.root_dir, "bar")
1468 make_dir(fromdir)1471 make_dir(fromdir)
14691472
1473 # patch to check proper dir deletion is handled
1474 called = []
1475 self.patch(self.eq.monitor._processor.general_processor,
1476 'handle_dir_delete', lambda p: called.append(p))
1477
1470 # patch the general processor to ignore all that ends with bar1478 # patch the general processor to ignore all that ends with bar
1471 self.patch(self.eq.monitor._processor.general_processor, "is_ignored",1479 self.patch(self.eq.monitor._processor.general_processor, "is_ignored",
1472 lambda path: path.endswith("bar"))1480 lambda path: path.endswith("bar"))
@@ -1479,6 +1487,7 @@
1479 # generate the event1487 # generate the event
1480 rename(fromdir, todir)1488 rename(fromdir, todir)
1481 yield self._deferred1489 yield self._deferred
1490 self.assertEqual(called, [fromdir])
14821491
1483 @defer.inlineCallbacks1492 @defer.inlineCallbacks
1484 def test_file_moved_from_ignored(self):1493 def test_file_moved_from_ignored(self):
@@ -1971,6 +1980,11 @@
1971 yield self._create_udf('vol2', base2)1980 yield self._create_udf('vol2', base2)
1972 self.fs.create(path=base2, share_id='vol2', is_dir=True)1981 self.fs.create(path=base2, share_id='vol2', is_dir=True)
19731982
1983 # patch to check proper dir deletion is handled
1984 called = []
1985 self.patch(self.eq.monitor._processor.general_processor,
1986 'handle_dir_delete', lambda p: called.append(p))
1987
1974 # working stuff1988 # working stuff
1975 moving1 = os.path.join(base1, "test")1989 moving1 = os.path.join(base1, "test")
1976 moving2 = os.path.join(base2, "test")1990 moving2 = os.path.join(base2, "test")
@@ -1987,6 +2001,7 @@
1987 # generate the event2001 # generate the event
1988 rename(moving1, moving2)2002 rename(moving1, moving2)
1989 yield self._deferred2003 yield self._deferred
2004 self.assertEqual(called, [moving1])
19902005
1991 @defer.inlineCallbacks2006 @defer.inlineCallbacks
1992 def test_move_file_across_volumes(self):2007 def test_move_file_across_volumes(self):
19932008
=== modified file 'ubuntuone/syncdaemon/filesystem_notifications.py'
--- ubuntuone/syncdaemon/filesystem_notifications.py 2011-09-15 21:14:24 +0000
+++ ubuntuone/syncdaemon/filesystem_notifications.py 2012-02-09 14:42:13 +0000
@@ -125,6 +125,8 @@
125125
126 def eq_push(self, event_name, **event_data):126 def eq_push(self, event_name, **event_data):
127 """Sends to EQ the event data, maybe filtering it."""127 """Sends to EQ the event data, maybe filtering it."""
128 if event_name == 'FS_DIR_DELETE':
129 self.handle_dir_delete(event_data['path'])
128 if not self._to_mute.pop(event_name, **event_data):130 if not self._to_mute.pop(event_name, **event_data):
129 self.monitor.eq.push(event_name, **event_data)131 self.monitor.eq.push(event_name, **event_data)
130132
@@ -149,8 +151,6 @@
149 return151 return
150152
151 if not self.is_ignored(event.pathname):153 if not self.is_ignored(event.pathname):
152 if evt_name == 'FS_DIR_DELETE':
153 self.handle_dir_delete(event.pathname)
154 self.eq_push(evt_name, path=event.pathname)154 self.eq_push(evt_name, path=event.pathname)
155155
156 def freeze_begin(self, path):156 def freeze_begin(self, path):

Subscribers

People subscribed via source and target branches