Ejemplo n.º 1
0
 def test_can_watch_dir(self):
     """Can watch a directory and trigger an action
     by creating a file matching the configured filemask"""
     test_filemask = 'testfilemask.txt'
     watch_data = {
         self.setup_test_dir: {
             'name': 'Test watch',
             'filemasks': {
                 test_filemask: {
                     'actions': [
                         self.echo_test_action,
                     ],
                 }
             }
         }
     }
     watcher = Watcher(watch_data, callback_func=self.callback_func)
     self._make_test_file(test_filemask)
     try:
         self.assertEqual(
             test_filemask,
             self.q.get(timeout=30),
             msg="Expected action to be triggered for filemask %s" %
             (test_filemask, ))
     finally:
         watcher.cleanup()
Ejemplo n.º 2
0
 def test_delayed_action(self):
     """Test that an action with start_time in the future is not triggered"""
     test_filemask = 'testfilemask.txt'
     test_action = { 'Echo filename and file datestamp' : {
         'cmd': 'echo',
         'start_time' : (datetime.datetime.now() + datetime.timedelta(minutes = 30)).strftime("%H:%M:%S"),
         'end_time' : '23:59:59',
         'args': ['$filename', 'YYYYMMDD'] } }
     watch_data = {
         self.setup_test_dir : {
             'name': 'Test watch',
             'filemasks': {
                 test_filemask : {
                     'actions': [test_action,],
                     }
                 }}}
     watcher = Watcher(watch_data, callback_func = self.callback_func)
     self._make_test_file(test_filemask)
     try:
         result = self.q.get(timeout = 1)
     except Queue.Empty:
         result = None
     try:
         self.assertEqual(None, result,
                          msg = "Got result from action where action has start time in future")
     finally:
         watcher.cleanup()
Ejemplo n.º 3
0
 def test_reload(self):
     test_filemask = 'testfilemask.txt'
     watch_data = {
         self.setup_test_dir : {
             'name': 'Test watch',
             'filemasks': {
                 test_filemask : {
                     'actions': [self.echo_test_action,],
                     }
                 }}}
     watcher = Watcher(watch_data, callback_func = self.callback_func)
     new_test_filemask = 'testy.txt'
     new_watch_data = {
         self.setup_test_dir : {
             'name': 'New watch',
             'filemasks': {
                 new_test_filemask : {
                     'actions': [self.echo_test_action,],
                     }
                 }}}
     watcher.update_watchers(new_watch_data)
     self.assertEqual(new_watch_data, watcher.watch_data,
                      msg = "Expected watcher watch data to be the new data we reloaded")
     self._make_test_file(new_test_filemask)
     try:
         self.assertEqual(new_test_filemask, self.q.get(timeout = 1),
                          msg = "Expected action to be triggered for new filemask %s" % (new_test_filemask,))
     finally:
         watcher.cleanup()
Ejemplo n.º 4
0
 def test_can_watch_dir(self):
     """Can watch a directory and trigger an action
     by creating a file matching the configured filemask"""
     test_filemask = 'testfilemask.txt'
     watch_data = {
         self.setup_test_dir : {
             'name': 'Test watch',
             'filemasks': {
                 test_filemask : {
                     'actions': [self.echo_test_action,],
                     }
                 }}}
     watcher = Watcher(watch_data, callback_func = self.callback_func)
     self._make_test_file(test_filemask)
     try:
         self.assertEqual(test_filemask, self.q.get(timeout = 30),
                          msg = "Expected action to be triggered for filemask %s" % (test_filemask,))
     finally:
         watcher.cleanup()
Ejemplo n.º 5
0
 def test_reload(self):
     test_filemask = 'testfilemask.txt'
     watch_data = {
         self.setup_test_dir: {
             'name': 'Test watch',
             'filemasks': {
                 test_filemask: {
                     'actions': [
                         self.echo_test_action,
                     ],
                 }
             }
         }
     }
     watcher = Watcher(watch_data, callback_func=self.callback_func)
     new_test_filemask = 'testy.txt'
     new_watch_data = {
         self.setup_test_dir: {
             'name': 'New watch',
             'filemasks': {
                 new_test_filemask: {
                     'actions': [
                         self.echo_test_action,
                     ],
                 }
             }
         }
     }
     watcher.update_watchers(new_watch_data)
     self.assertEqual(
         new_watch_data,
         watcher.watch_data,
         msg="Expected watcher watch data to be the new data we reloaded")
     self._make_test_file(new_test_filemask)
     try:
         self.assertEqual(
             new_test_filemask,
             self.q.get(timeout=1),
             msg="Expected action to be triggered for new filemask %s" %
             (new_test_filemask, ))
     finally:
         watcher.cleanup()
Ejemplo n.º 6
0
 def test_delayed_action(self):
     """Test that an action with start_time in the future is not triggered"""
     test_filemask = 'testfilemask.txt'
     test_action = {
         'Echo filename and file datestamp': {
             'cmd':
             'echo',
             'start_time':
             (datetime.datetime.now() +
              datetime.timedelta(minutes=30)).strftime("%H:%M:%S"),
             'end_time':
             '23:59:59',
             'args': ['$filename', 'YYYYMMDD']
         }
     }
     watch_data = {
         self.setup_test_dir: {
             'name': 'Test watch',
             'filemasks': {
                 test_filemask: {
                     'actions': [
                         test_action,
                     ],
                 }
             }
         }
     }
     watcher = Watcher(watch_data, callback_func=self.callback_func)
     self._make_test_file(test_filemask)
     try:
         result = self.q.get(timeout=1)
     except Queue.Empty:
         result = None
     try:
         self.assertEqual(
             None,
             result,
             msg=
             "Got result from action where action has start time in future")
     finally:
         watcher.cleanup()