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()