def test_write_fall_daylight_time_mode2_prop__should_copy_all_fields_to_a_device( self): def se(parameters, buffer_size): choices = { 'WeekOfMonth1': 2, 'WeekOfMonth2': 3, 'WeekOfMonth3': 4, 'WeekOfMonth4': 5, 'WeekOfMonth5': 6, 'WeekOfMonth6': 2, 'WeekOfMonth7': 3, 'WeekOfMonth8': 4, 'WeekOfMonth9': 5, 'WeekOfMonth10': 6, } return {parameters[0]: choices[parameters[0]]} sdk = Mock() obj = DeviceParameters(sdk, ZK400) sdk2 = Mock() sdk2.get_device_param.side_effect = se test_obj = DaylightSavingMomentMode2(sdk2, False, 4096) obj.fall_daylight_time_mode2 = test_obj sdk.set_device_param.assert_has_calls(( call(parameters={'WeekOfMonth6': '2'}), call(parameters={'WeekOfMonth7': '3'}), call(parameters={'WeekOfMonth8': '4'}), call(parameters={'WeekOfMonth9': '5'}), call(parameters={'WeekOfMonth10': '6'}), ))
def test_write_reboot_writeonly_prop__if_write_wrong_value__should_raise_error( self, value): sdk = Mock() sdk.set_device_param.return_value = None obj = DeviceParameters(sdk, ZK400) with pytest.raises(TypeError): obj.reboot = value
def test_write_datetime_prop__should_correctly_calculate_datetime(self): sdk = Mock() sdk.set_device_param.return_value = None obj = DeviceParameters(sdk, ZK400) obj.datetime = datetime(2010, 10, 26, 20, 54, 55) sdk.set_device_param.assert_called_once_with( parameters={'DateTime': '347748895'})
def test_write_fall_daylight_time_mode1_prop__should_return_object(self): sdk = Mock() sdk.set_device_param.return_value = None obj = DeviceParameters(sdk, ZK400) test_obj = DaylightSavingMomentMode1(1, 2, 3, 4) obj.fall_daylight_time_mode1 = test_obj sdk.set_device_param.assert_called_once_with( parameters={'StandardTime': '1-2-3-4'})
def test_write_reboot_writeonly_prop__if_write_1__should_set_value_on_a_device( self): sdk = Mock() sdk.set_device_param.return_value = None obj = DeviceParameters(sdk, ZK400) obj.reboot = True sdk.set_device_param.assert_called_once_with( parameters={'Reboot': '1'})
def test_write_readonly_property__for_read_only_properties__should_raise_error( self, prop, param, prop_type, sdk_value, prop_value): sdk = Mock() obj = DeviceParameters(sdk, ZK400) with pytest.raises(AttributeError): setattr(obj, prop, prop_value)
def test_read_datetime_prop__should_correctly_calculate_datetime(self): sdk = Mock() sdk.get_device_param.return_value = {'DateTime': '347748895'} obj = DeviceParameters(sdk, ZK400) res = obj.datetime assert res == datetime(2010, 10, 26, 20, 54, 55)
def test_write_readwrite_property__if_wrong_value_passed__should_raise_error( self, prop, param, prop_type, sdk_value, prop_value): sdk = Mock() sdk.set_device_param.return_value = None obj = DeviceParameters(sdk, ZK400) with pytest.raises((ValueError, TypeError)): setattr(obj, prop, prop_value)
def test_read_readonly_property__if_wrong_value_returned__should_raise_error( self, prop, param, prop_type, sdk_value, prop_value): sdk = Mock() sdk.get_device_param.return_value = {param: sdk_value} obj = DeviceParameters(sdk, ZK400) with pytest.raises((TypeError, ValueError)): _ = getattr(obj, prop)
def test_write_readwrite_property__should_set_value_on_a_device( self, prop, param, prop_type, sdk_value, prop_value): sdk = Mock() sdk.set_device_param.return_value = None obj = DeviceParameters(sdk, ZK400) setattr(obj, prop, prop_value) sdk.set_device_param.assert_called_once_with( parameters={param: sdk_value})
def test_read_fall_daylight_time_mode2_prop__should_return_object(self): sdk = Mock() obj = DeviceParameters(sdk, ZK400) res = obj.fall_daylight_time_mode2 sdk.get_device_param.assert_not_called() assert isinstance(res, DaylightSavingMomentMode2) assert res._sdk is sdk assert res.is_daylight is False assert res.buffer_size == 4096
def test_read_readwrite_property__should_return_value_of_correct_type( self, prop, param, prop_type, sdk_value, prop_value): sdk = Mock() sdk.get_device_param.return_value = {param: sdk_value} obj = DeviceParameters(sdk, ZK400) res = getattr(obj, prop) sdk.get_device_param.assert_called_once_with(parameters=(param, ), buffer_size=4096) assert isinstance(res, prop_type) assert res == prop_value
def test_read_fall_daylight_time_mode1_prop__should_return_object(self): sdk = Mock() sdk.get_device_param.return_value = {'StandardTime': '1-2-3-4'} obj = DeviceParameters(sdk, ZK400) res = obj.fall_daylight_time_mode1 sdk.get_device_param.assert_called_once_with( parameters=('StandardTime', ), buffer_size=4096) assert isinstance(res, DaylightSavingMomentMode1) assert res.month == 1 assert res.day == 2 assert res.hour == 3 assert res.minute == 4
def test_read_reboot_writeonly_prop__should_raise_error(self): sdk = Mock() obj = DeviceParameters(sdk, ZK400) with pytest.raises(AttributeError): _ = obj.reboot
def test_init__should_fill_attributes(self): sdk = Mock() obj = DeviceParameters(sdk, ZK400) assert obj._sdk is sdk assert obj.device_model == ZK400