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"