def __repr__(self): r = reflection.get_class_name(self, fully_qualified=False) if self.identity is not self._NO_IDENTITY: r += "(identity=%s, tasks=%s, topic=%s)" % (self.identity, self.tasks, self.topic) else: r += "(identity=*, tasks=%s, topic=%s)" % (self.tasks, self.topic) return r
def __init__(self, topic, tasks, identity=_NO_IDENTITY): self.tasks = [] for task in tasks: if not isinstance(task, six.string_types): task = reflection.get_class_name(task) self.tasks.append(task) self.topic = topic self.identity = identity
def test_multi_same_topic_workers(self): workers = worker_types.TopicWorkers() w = workers.add('dummy-topic', [utils.DummyTask]) self.assertIsNotNone(w) w2 = workers.add('dummy-topic-2', [utils.DummyTask]) self.assertIsNotNone(w2) w3 = workers.get_worker_for_task( reflection.get_class_name(utils.DummyTask)) self.assertIn(w3.identity, [w.identity, w2.identity])
def test_multi_same_topic_workers(self): finder = worker_types.ProxyWorkerFinder('me', mock.MagicMock(), []) w, emit = finder._add('dummy-topic', [utils.DummyTask]) self.assertIsNotNone(w) self.assertTrue(emit) w2, emit = finder._add('dummy-topic-2', [utils.DummyTask]) self.assertIsNotNone(w2) self.assertTrue(emit) w3 = finder.get_worker_for_task( reflection.get_class_name(utils.DummyTask)) self.assertIn(w3.identity, [w.identity, w2.identity])
def performs(self, task): if not isinstance(task, six.string_types): task = reflection.get_class_name(task) return task in self.tasks
def test_int(self): name = reflection.get_class_name(42) self.assertEqual('int', name)
def test_instance(self): name = reflection.get_class_name(Class()) self.assertEqual('.'.join((__name__, 'Class')), name)
def test_std_exception(self): name = reflection.get_class_name(RuntimeError) self.assertEqual('RuntimeError', name)