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()
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()
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()
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()
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()
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()