Add __repr__ method to Atom

Having atom name in its representation helps a lot
when debugging.

Change-Id: I8cb7054b95a8810a7fe3893ba579e9f9e9facd8e
This commit is contained in:
Ivan A. Melnikov
2014-03-24 13:25:41 +04:00
parent dc180afb94
commit 2e49a4cc29
2 changed files with 11 additions and 0 deletions

View File

@@ -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."""

View File

@@ -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, {})