def setUp(self): global called, called_popen called = False called_popen = False self.old_popen = subprocess.Popen subprocess.Popen = self.mocked_popen self.listener = PymonListener("python", "tests/hello.py")
class MonitorTestCase(unittest.TestCase): def setUp(self): global called called = False self.old_popen = subprocess.Popen subprocess.Popen = self.mocked_call self.listener = PymonListener("python", "hello.py") self.assertIsNone(self.listener.proc) self.listener.start() def tearDown(self): self.listener = None subprocess.Popen = self.old_popen def mocked_call(*args, **kwargs): global called called = True def check_call(self): global called self.assertTrue(called) called = False def testRestartTouchFile(self): with open('test_file.txt', 'a'): os.utime('test_file.txt', None) self.check_call()
def setUp(self): global called called = False self.old_popen = subprocess.Popen subprocess.Popen = self.mocked_call self.listener = PymonListener("python", "hello.py") self.assertIsNone(self.listener.proc) self.listener.start()
def run(): # Create and read all the settings settings = parse_settings(sys.argv[1:]) debug(settings) colour_print(BLUE_COLOUR, "[pymon] Pymon %s" % settings["version"]) colour_print(BLUE_COLOUR, "[pymon] Watching %s" % settings["path"]) # Create an event handler for file system changes event_handler = PymonEventHandler( settings["regexes"], settings["ignores"], True, False) # Create a file system observer observer = Observer() observer.schedule( event_handler, settings["path"], recursive=True) observer.start() # Create and register a listener for the user's application listener = PymonListener( settings["prog"], settings["app_args"]) transport.add_listener(listener) listener.start() try: # Loop for user input while True: user_input = raw_input("") if user_input == "rs" or user_input == "restart": transport.emit("restart") elif user_input == "stop": raise Exception except (KeyboardInterrupt, Exception) as e: # Terminate all applications and exit transport.emit("stop") observer.stop() observer.join()
class ListenerTestCase(unittest.TestCase): def setUp(self): global called, called_popen called = False called_popen = False self.old_popen = subprocess.Popen subprocess.Popen = self.mocked_popen self.listener = PymonListener("python", "tests/hello.py") def tearDown(self): self.listener = None subprocess.Popen = self.old_popen def mocked_popen(*args, **kwargs): global called_popen called_popen = True def check_popen(self): global called_popen self.assertTrue(called_popen) called_popen = False def mocked_call(*args, **kwargs): global called called = True def check_call(self): global called self.assertTrue(called) called = False def testStart(self): # Call start when program stopped self.assertIsNone(self.listener.proc) self.listener.start() self.check_popen() # Call start when program started self.listener.start() def testStop(self): # Calling stop when program stopped self.assertIsNone(self.listener.proc) self.listener.stop() self.assertIsNone(self.listener.proc) # Starting the program self.listener.start() self.check_popen() # Calling stop when program running self.listener.stop() self.assertIsNone(self.listener.proc) def testRestart(self): # Calling restart when program stopped self.assertIsNone(self.listener.proc) self.listener.restart() self.check_popen() # Calling restart when program running self.listener.restart() self.check_popen() def testPing(self): pass def testHandleStart(self): self.old_start = PymonListener.start PymonListener.start = self.mocked_call self.listener.handle_msg("start") self.check_call() PymonListener.start = self.old_start def testHandleStop(self): self.old_stop = PymonListener.stop PymonListener.stop = self.mocked_call self.listener.handle_msg("stop") self.check_call() PymonListener.stop = self.old_stop def testHandleRestart(self): self.old_restart = PymonListener.restart PymonListener.restart = self.mocked_call self.listener.handle_msg("restart") self.check_call() PymonListener.restart = self.old_restart def testHandlePing(self): self.old_ping = PymonListener.ping PymonListener.ping = self.mocked_call self.listener.handle_msg("ping") self.check_call() PymonListener.ping = self.old_ping
def testRemoveListener(self): listener = PymonListener("prog", "args") self.transport.add_listener(listener) self.assertIn(listener, self.transport.listeners) self.transport.remove_listener(listener) self.assertNotIn(listener, self.transport.listeners)
def testAddListeners(self): listener1 = PymonListener("prog1", "args") listener2 = PymonListener("prog2", "args") self.transport.add_listeners([listener1, listener2]) self.assertIn(listener1, self.transport.listeners) self.assertIn(listener2, self.transport.listeners)
def testAddListener(self): listener = PymonListener("prog", "args") self.transport.add_listener(listener) self.assertIn(listener, self.transport.listeners)