mirror of
https://github.com/no2chem/wideq.git
synced 2025-05-16 15:20:09 -07:00
111 lines
3.2 KiB
Python
111 lines
3.2 KiB
Python
import unittest
|
|
|
|
from wideq.client import (
|
|
BitValue, EnumValue, ModelInfo, RangeValue, ReferenceValue)
|
|
|
|
|
|
DATA = {
|
|
'Value': {
|
|
'AntiBacterial': {
|
|
'default': '0',
|
|
'label': '@WM_DRY27_BUTTON_ANTI_BACTERIAL_W',
|
|
'option': {
|
|
'0': '@CP_OFF_EN_W',
|
|
'1': '@CP_ON_EN_W'
|
|
},
|
|
'type': 'Enum'
|
|
},
|
|
'Course': {
|
|
'option': ['Course'],
|
|
'type': 'Reference',
|
|
},
|
|
'Initial_Time_H': {
|
|
'default': 0,
|
|
'option': {'max': 24, 'min': 0},
|
|
'type': 'Range'
|
|
},
|
|
'Option1': {
|
|
'default': '0',
|
|
'option': [
|
|
{
|
|
'default': '0',
|
|
'length': 1,
|
|
'startbit': 0,
|
|
'value': 'ChildLock'
|
|
},
|
|
{
|
|
'default': '0',
|
|
'length': 1,
|
|
'startbit': 1,
|
|
'value': 'ReduceStatic'
|
|
},
|
|
{
|
|
'default': '0',
|
|
'length': 1,
|
|
'startbit': 2,
|
|
'value': 'EasyIron'
|
|
},
|
|
{
|
|
'default': '0',
|
|
'length': 1,
|
|
'startbit': 3,
|
|
'value': 'DampDrySingal'
|
|
},
|
|
{
|
|
'default': '0',
|
|
'length': 1,
|
|
'startbit': 4,
|
|
'value': 'WrinkleCare'
|
|
},
|
|
{
|
|
'default': '0',
|
|
'length': 1,
|
|
'startbit': 7,
|
|
'value': 'AntiBacterial'
|
|
}
|
|
],
|
|
'type': 'Bit'
|
|
},
|
|
'Unexpected': {'type': 'Unexpected'},
|
|
},
|
|
}
|
|
|
|
|
|
class ModelInfoTest(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
super().setUp()
|
|
self.model_info = ModelInfo(DATA)
|
|
|
|
def test_value_enum(self):
|
|
actual = self.model_info.value('AntiBacterial')
|
|
expected = EnumValue({'0': '@CP_OFF_EN_W', '1': '@CP_ON_EN_W'})
|
|
self.assertEqual(expected, actual)
|
|
|
|
def test_value_range(self):
|
|
actual = self.model_info.value('Initial_Time_H')
|
|
expected = RangeValue(min=0, max=24, step=1)
|
|
self.assertEqual(expected, actual)
|
|
|
|
def test_value_bit(self):
|
|
actual = self.model_info.value('Option1')
|
|
expected = BitValue({
|
|
0: {'length': 1, 'value': 'ChildLock'},
|
|
1: {'length': 1, 'value': 'ReduceStatic'},
|
|
2: {'length': 1, 'value': 'EasyIron'},
|
|
3: {'length': 1, 'value': 'DampDrySingal'},
|
|
4: {'length': 1, 'value': 'WrinkleCare'},
|
|
7: {'length': 1, 'value': 'AntiBacterial'},
|
|
})
|
|
self.assertEqual(expected, actual)
|
|
|
|
def test_value_reference(self):
|
|
actual = self.model_info.value('Course')
|
|
expected = ReferenceValue('Course')
|
|
self.assertEqual(expected, actual)
|
|
|
|
def test_value_unsupported(self):
|
|
with self.assertRaisesRegex(
|
|
ValueError, 'unsupported value type Unexpected'):
|
|
self.model_info.value('Unexpected')
|