def test_forked_actor_in_actor(self): ''' test_forked_gen_actors.test_actors_actor_in_actor ''' test_name = 'test_forked_gen_actors.test_forked_actor_in_actor' logger = file_logger(test_name, filename='logs/%s.log' % test_name) parent = ForkedGenActor(name='Parent') logger.debug('%s' % parent) parent.add_child(ForkedGenActor(name='Child-1')) parent.add_child(ForkedGenActor(name='Child-2')) logger.debug('%s, children: %s' % (parent, [str(child) for child in parent.children])) parent.start() logger.debug('%s, actor started' % parent) while parent.processing: logger.debug('%s, actor is processing' % parent) time.sleep(0.1) parent.stop() logger.debug('%s, actor stopped' % parent) result = [] while True: try: result.append(parent.inbox.get()) except EmptyInboxException: break self.assertEqual(len(result), 20) self.assertEqual(parent.processing, False) self.assertEqual(parent.waiting, False)
def test_processing_with_diff_timelife_children(self): ''' test_forked_gen_actors.test_processing_with_diff_timelife_children ''' test_name = 'test_forked_gen_actors.test_processing_with_diff_timelife_children' logger = file_logger(test_name, filename='logs/%s.log' % test_name) parent = ForkedGenActor() for i in range(5): parent.add_child(TestActor(iters=i)) parent.start() while parent.processing: time.sleep(0.1) parent.stop() result = [] while True: try: result.append(parent.inbox.get()) except EmptyInboxException: break self.assertEqual(result, [0,0,0,0,1,1,1,3,3,6]) self.assertEqual(len(result), 10) self.assertEqual(parent.processing, False) self.assertEqual(parent.waiting, False)
def test_send_msg_between_actors(self): ''' test_forked_gen_actors.test_send_msg_between_actors ''' test_name = 'test_forked_gen_actors.test_send_msg_between_actors' logger = file_logger(test_name, filename='logs/%s.log' % test_name) parent = ForkedGenActor() parent.add_child(SenderActor(name='Sender')) parent.add_child(ReceiverActor(name='Receiver')) parent.start() while parent.processing: time.sleep(0.1) parent.stop() self.assertEqual(parent.inbox.get(), 'message from sender')