From 2e49a4cc298e6168528aff7aa02f527d4911d76f Mon Sep 17 00:00:00 2001 From: "Ivan A. Melnikov" Date: Mon, 24 Mar 2014 13:25:41 +0400 Subject: [PATCH] Add __repr__ method to Atom Having atom name in its representation helps a lot when debugging. Change-Id: I8cb7054b95a8810a7fe3893ba579e9f9e9facd8e --- taskflow/atom.py | 3 +++ taskflow/tests/unit/test_task.py | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/taskflow/atom.py b/taskflow/atom.py index e26f0f4b..90314ac0 100644 --- a/taskflow/atom.py +++ b/taskflow/atom.py @@ -150,6 +150,9 @@ class Atom(object): def __str__(self): return "%s==%s" % (self.name, misc.get_version_string(self)) + def __repr__(self): + return '<%s %s>' % (reflection.get_class_name(self), self) + @property def provides(self): """Any outputs this atom produces.""" diff --git a/taskflow/tests/unit/test_task.py b/taskflow/tests/unit/test_task.py index cef9145e..9db33f28 100644 --- a/taskflow/tests/unit/test_task.py +++ b/taskflow/tests/unit/test_task.py @@ -60,6 +60,14 @@ class TaskTest(test.TestCase): self.assertEqual(my_task.name, '%s.%s' % (__name__, 'MyTask')) + def test_task_str(self): + my_task = MyTask(name='my') + self.assertEqual(str(my_task), 'my==1.0') + + def test_task_repr(self): + my_task = MyTask(name='my') + self.assertEqual(repr(my_task), '<%s.MyTask my==1.0>' % __name__) + def test_no_provides(self): my_task = MyTask() self.assertEqual(my_task.save_as, {})