diff options
author | Laurent Luce <laurentluce49@yahoo.com> | 2015-10-09 11:29:03 -0400 |
---|---|---|
committer | Laurent Luce <laurentluce49@yahoo.com> | 2015-10-09 11:29:03 -0400 |
commit | 7af1c13ac55eeb9b38a9990a62ac8aeda433c026 (patch) | |
tree | 850a170e24fa2c05d5e567e0478fcd25e00eb2b1 | |
parent | af771fecf4df15ebcecd3fcf5eed34f9d357f90d (diff) | |
download | python-barbicanclient-7af1c13ac55eeb9b38a9990a62ac8aeda433c026.tar.gz |
Add to_dict method to EntityFormatter.
Change-Id: Ie1228e1f50af8c6c31f7772d3393e845cb899f63
Closes-Bug: #1485619
-rw-r--r-- | barbicanclient/formatter.py | 4 | ||||
-rw-r--r-- | barbicanclient/tests/test_formatter.py | 59 |
2 files changed, 63 insertions, 0 deletions
diff --git a/barbicanclient/formatter.py b/barbicanclient/formatter.py index 5cc35f0..2f4e1d0 100644 --- a/barbicanclient/formatter.py +++ b/barbicanclient/formatter.py @@ -48,3 +48,7 @@ class EntityFormatter(object): for name, value in zip(self.columns, data): table.add_row((name, value)) return table.get_string(fields=('Field', 'Value')) + + def to_dict(self): + columns, data = self._get_formatted_entity() + return dict((key, value) for (key, value) in zip(columns, data)) diff --git a/barbicanclient/tests/test_formatter.py b/barbicanclient/tests/test_formatter.py new file mode 100644 index 0000000..7f29367 --- /dev/null +++ b/barbicanclient/tests/test_formatter.py @@ -0,0 +1,59 @@ +import testtools + +from barbicanclient import formatter + + +class EntityFormatter(formatter.EntityFormatter): + + columns = ("Column A", + "Column B", + "Column C") + + def _get_formatted_data(self): + data = (self._attr_a, + self._attr_b, + self._attr_c) + return data + + +class Entity(EntityFormatter): + + def __init__(self, attr_a, attr_b, attr_c): + self._attr_a = attr_a + self._attr_b = attr_b + self._attr_c = attr_c + + +class TestFormatter(testtools.TestCase): + + def test_should_get_list_objects(self): + entity_1 = Entity('test_attr_a_1', 'test_attr_b_1', 'test_attr_c_1') + entity_2 = Entity('test_attr_a_2', 'test_attr_b_2', 'test_attr_c_2') + columns, data = EntityFormatter._list_objects([entity_1, entity_2]) + self.assertEqual(columns, ('Column A', 'Column B', 'Column C')) + self.assertEqual([e for e in data], + [('test_attr_a_1', 'test_attr_b_1', 'test_attr_c_1'), + ('test_attr_a_2', 'test_attr_b_2', 'test_attr_c_2')]) + + def test_should_get_list_objects_empty(self): + columns, data = EntityFormatter._list_objects([]) + self.assertEqual(columns, []) + self.assertEqual([e for e in data], []) + + def test_should_get_str(self): + entity = Entity('test_attr_a_1', 'test_attr_b_1', 'test_attr_c_1') + self.assertEqual(str(entity), + '+----------+---------------+\n' + '| Field | Value |\n' + '+----------+---------------+\n' + '| Column A | test_attr_a_1 |\n' + '| Column B | test_attr_b_1 |\n' + '| Column C | test_attr_c_1 |\n' + '+----------+---------------+') + + def test_should_to_dict(self): + entity = Entity('test_attr_a_1', 'test_attr_b_1', 'test_attr_c_1') + self.assertEqual(entity.to_dict(), + {'Column A': 'test_attr_a_1', + 'Column B': 'test_attr_b_1', + 'Column C': 'test_attr_c_1'}) |