def testSubDir(self):
     fw = IPFileWatcher(self.fs)
     testPath = self.testDir
     testPath1 = self.testDir + "one" + os.path.sep
     testPath2 = self.testDir + "two" + os.path.sep
     self.fs.makeDirectory(testPath)
     events = []
     def listener(*args):    # (path, eventName, eventTime):
         events.append(args)
     fw.setDirsToBeWatched([testPath])
     fw.addListener(listener)
     
     self.fs.writeFile(testPath1 + "test1.txt", "one")
     self.fs.writeFile(testPath1 + "test2.txt", "two")
     self.delay()
     for event in events:
         print event
     print
     
     events = []
     self.fs.rename(testPath1, testPath2)
     self.delay()
     for event in events:
         print event
     print
 def testWatcherBasic(self):
     fw = IPFileWatcher(self.fs)
     paths = [self.testDir]
     events = []
     def listener(*args):    # (path, eventName, eventTime):
         events.append(args)
     fw.setDirsToBeWatched(paths)
     fw.addListener(listener)
     
     # assert that we have received a 'mod' event
     events = []
     self.fs.writeFile(self.testDir + "test1.txt", "testing")
     self.assertTrue(self.fs.isFile(self.testDir + "test1.txt"))
     self.delay()
     self.assertEqual("mod", events[-1][1])
     
     # assert that we have received a 'del' and 'cre' events
     events = []        
     self.fs.rename(self.testDir + "test1.txt", self.testDir + "test2.txt")
     self.delay()
     self.assertEqual("del", events[-2][1])
     self.assertEqual(self.testDir + "test1.txt", events[-2][0])
     self.assertEqual("cre", events[-1][1])
     self.assertEqual(self.testDir + "test2.txt", events[-1][0])
     
     # assert that we have received a 'del' event
     events = []
     self.fs.delete(self.testDir + "test2.txt")
     self.delay()
     self.assertTrue(len(events)>0)
     self.assertEqual("del", events[-1][1])
     
     # assert stopped watching
     events = []
     fw.stopWatching()
     self.delay()
     self.fs.writeFile(self.testDir + "test1.txt", "testing")
     self.delay()
     self.assertEqual(len(events), 0)
     
     fw.close()
     fw = None
     print "done"
 def testWatcherMultiPaths(self):
     fw = IPFileWatcher(self.fs)
     testPath1 = self.testDir + "one" + os.path.sep
     testPath2 = self.testDir + "two" + os.path.sep
     testPath3 = self.testDir + "three" + os.path.sep
     self.fs.makeDirectory(testPath1)
     self.fs.makeDirectory(testPath2)
     self.fs.makeDirectory(testPath3)
     events = []
     def listener(*args):    # (path, eventName, eventTime):
         events.append(args)
     fw.setDirsToBeWatched([testPath1, testPath2])
     fw.addListener(listener)
     
     events = []
     self.fs.writeFile(testPath1 + "subDir" + os.path.sep + "test.txt", "testing")
     self.fs.writeFile(testPath1 + "test.txt", "testing")
     self.delay()
     self.assertTrue(len(events)>0)
     
     # Test adding and removing of directories
     fw.setDirsToBeWatched([testPath2, testPath3])
     
     events = []
     self.fs.writeFile(testPath1 + "test2.txt", "testing")
     self.delay()
     self.assertTrue(len(events)==0)
     
     events = []
     self.fs.writeFile(testPath2 + "test2.txt", "testing")
     self.delay()
     self.assertTrue(len(events)>0)
     
     events = []
     self.fs.writeFile(testPath3 + "test2.txt", "testing")
     self.delay()
     self.assertTrue(len(events)>0)