def test_master_counts_processes(): """ Test managing process counts child processes """ # Setup Logging logger = logging.getLogger("pyqs") del logger.handlers[:] logger.handlers.append(MockLoggingHandler()) # Setup SQS Queue conn = boto3.client('sqs', region_name='us-east-1') conn.create_queue(QueueName="tester") # Setup Manager manager = ManagerWorker(["tester"], 2, 1, 10) manager.start() # Check Workers manager.process_counts() # Cleanup manager.stop() # Check messages msg1 = "Reader Processes: 1" logger.handlers[0].messages['debug'][-2].lower().should.contain( msg1.lower()) msg2 = "Worker Processes: 2" logger.handlers[0].messages['debug'][-1].lower().should.contain( msg2.lower())
def test_master_counts_processes(): """ Test managing process counts child processes """ # Setup Logging logger = logging.getLogger("pyqs") del logger.handlers[:] logger.handlers.append(MockLoggingHandler()) # Setup SQS Queue conn = boto.connect_sqs() conn.create_queue("tester") # Setup Manager manager = ManagerWorker(["tester"], 2) manager.start() # Check Workers manager.process_counts() # Cleanup manager.stop() # Check messages msg1 = "Reader Processes: 1" logger.handlers[0].messages['debug'][-2].lower().should.contain(msg1.lower()) msg2 = "Worker Processes: 2" logger.handlers[0].messages['debug'][-1].lower().should.contain(msg2.lower())
def test_master_handles_signals(sys): """ Test managing process handles OS signals """ # Setup SQS Queue conn = boto3.client('sqs', region_name='us-east-1') conn.create_queue(QueueName="tester") # Mock out sys.exit sys.exit = Mock() # Have our inner method send our signal def process_counts(): os.kill(os.getpid(), signal.SIGTERM) # Setup Manager manager = ManagerWorker(queue_prefixes=["tester"], worker_concurrency=1, interval=1, batchsize=10) manager.process_counts = process_counts manager._graceful_shutdown = MagicMock() # When we start and trigger a signal manager.start() manager.sleep() # Then we exit sys.exit.assert_called_once_with(0)
def test_master_handles_signals(sys): """ Test managing process handles OS signals """ # Setup SQS Queue conn = boto.connect_sqs() conn.create_queue("tester") # Mock out sys.exit sys.exit = Mock() # Have our inner method send our signal def process_counts(): os.kill(os.getpid(), signal.SIGTERM) # Setup Manager manager = ManagerWorker(queue_prefixes=["tester"], worker_concurrency=1) manager.process_counts = process_counts manager._graceful_shutdown = MagicMock() # When we start and trigger a signal manager.start() manager.sleep() # Then we exit sys.exit.assert_called_once_with(0)