| import unittest |
| from unittest import TestCase |
| from metadata_model import * |
| from metadata_helpers import * |
| |
| class TestHelpers(TestCase): |
| |
| def test_enum_calculate_value_string(self): |
| def compare_values_against_list(expected_list, enum): |
| for (idx, val) in enumerate(expected_list): |
| self.assertEquals(val, |
| enum_calculate_value_string(list(enum.values)[idx])) |
| |
| plain_enum = Enum(parent=None, values=['ON', 'OFF']) |
| |
| compare_values_against_list(['0', '1'], |
| plain_enum) |
| |
| ### |
| labeled_enum = Enum(parent=None, values=['A', 'B', 'C'], ids={ |
| 'A': '12345', |
| 'B': '0xC0FFEE', |
| 'C': '0xDEADF00D' |
| }) |
| |
| compare_values_against_list(['12345', '0xC0FFEE', '0xDEADF00D'], |
| labeled_enum) |
| |
| ### |
| mixed_enum = Enum(parent=None, |
| values=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], |
| ids={ |
| 'C': '0xC0FFEE', |
| 'E': '123', |
| 'G': '0xDEADF00D' |
| }) |
| |
| expected_values = ['0', '1', '0xC0FFEE', '0xC0FFEF', '123', '124', |
| '0xDEADF00D', |
| '0xDEADF00E'] |
| |
| compare_values_against_list(expected_values, mixed_enum) |
| |
| def test_enumerate_with_last(self): |
| empty_list = [] |
| |
| for (x, y) in enumerate_with_last(empty_list): |
| self.fail("Should not return anything for empty list") |
| |
| single_value = [1] |
| for (x, last) in enumerate_with_last(single_value): |
| self.assertEquals(1, x) |
| self.assertEquals(True, last) |
| |
| multiple_values = [4, 5, 6] |
| lst = list(enumerate_with_last(multiple_values)) |
| self.assertListEqual([(4, False), (5, False), (6, True)], lst) |
| |
| if __name__ == '__main__': |
| unittest.main() |