X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/158206e02f0dcdb90ce63e25b39ca26ae2584252..580c971ea7bccf63c45fa294596186a13fc3de12:/test/ganeti.asyncnotifier_unittest.py diff --git a/test/ganeti.asyncnotifier_unittest.py b/test/ganeti.asyncnotifier_unittest.py index 0e9c1e4..5fdaf56 100755 --- a/test/ganeti.asyncnotifier_unittest.py +++ b/test/ganeti.asyncnotifier_unittest.py @@ -24,6 +24,8 @@ import unittest import signal import os +import tempfile +import shutil try: # pylint: disable-msg=E0611 @@ -62,15 +64,12 @@ class TestSingleFileEventHandler(testutils.GanetiTestCase): # We need one watch manager per notifier, as those contain the file # descriptor which is monitored by asyncore self.wms = [pyinotify.WatchManager() for i in self.NOTIFIERS] - self.cbk = [self.OnInotifyCallback(self, i) - for i in range(len(self.NOTIFIERS))] - self.ihandler = [asyncnotifier.SingleFileEventHandler(self.wms[i], - self.cbk[i], - self.chk_files[i]) - for i in range(len(self.NOTIFIERS))] - self.notifiers = [_MyErrorLoggingAsyncNotifier(self.wms[i], - self.ihandler[i]) - for i in range(len(self.NOTIFIERS))] + self.cbk = [self.OnInotifyCallback(self, i) for i in self.NOTIFIERS] + self.ihandler = [asyncnotifier.SingleFileEventHandler(wm, cb, cf) + for (wm, cb, cf) in + zip(self.wms, self.cbk, self.chk_files)] + self.notifiers = [_MyErrorLoggingAsyncNotifier(wm, ih) + for (wm, ih) in zip(self.wms, self.ihandler)] # TERM notifier is enabled by default, as we use it to get out of the loop self.ihandler[self.NOTIFIER_TERM].enable() @@ -149,5 +148,23 @@ class TestSingleFileEventHandler(testutils.GanetiTestCase): self.assertEquals(self.notifiers[self.NOTIFIER_TERM].error_count, 0) +class TestSingleFileEventHandlerError(unittest.TestCase): + def setUp(self): + self.tmpdir = tempfile.mkdtemp() + + def tearDown(self): + shutil.rmtree(self.tmpdir) + + def test(self): + wm = pyinotify.WatchManager() + handler = asyncnotifier.SingleFileEventHandler(wm, None, + utils.PathJoin(self.tmpdir, + "nonexist")) + self.assertRaises(errors.InotifyError, handler.enable) + self.assertRaises(errors.InotifyError, handler.enable) + handler.disable() + self.assertRaises(errors.InotifyError, handler.enable) + + if __name__ == "__main__": testutils.GanetiTestProgram()